如何在不重新启动的情况下生成服务模型元数据

本文关键字:服务 模型 元数据 情况下 重新启动 | 更新日期: 2023-09-27 17:56:17

我有一个简单的WCF服务应用程序(基于本教程:入门)。我的问题是,当我向应用程序添加一个函数并想使用以下命令重新生成 Proxy.cs 文件时:

C:'kod>svcutil.exe /language:cs /out:Proxy.cs /config:app.config http://localhos t:8000/PBMB

我得到以下结果。我知道重新生成这些文件的唯一解决方案是重新启动我的计算机。但是每次我改变任何东西时都这样做是令人沮丧的。有人可以帮忙吗?

结果:

Microsoft (R) 服务模型元数据 工具 [Microsoft (R) 窗口 (R) 通信基础,版本 4.0.30319.1] 版权所有 (c) Microsoft公司。 保留所有权利。

尝试从 下载元数据 "http://localhost:8000/PBMB" 使用 WS-Metad ata Exchange 或 DISCO。错误: 无法导入 wsdl:端口类型详细信息:一个 运行 WSDL 导入扩展:System.Se rviceModel.Description.DataContractSerializerMessageContractImporter 错误:具有目标命名空间的架构 找不到"http://PBMB"。 XPath 到错误源: wsdl:definitions[@targetNamespace='http://PBMB']/wsdl:p ortType[@name='IService']

错误:无法导入 wsdl:binding 详细信息:导入 wsdl:port键入 wsdl:binding 是 de pendent on.XPath to wsdl:portType: wsdl:definitions[@targetNamespace='http://PBMB']/wsdl: portType[@name='IService'] XPath to 错误源: wsdl:definitions[@targetNamespace='http://tempuri.org/' ]/wsdl:binding[@name='WSHttpBinding_IService']

错误:无法导入 wsdl:端口详细信息: 导入 wsdl:binding that wsdl:port is 依赖。XPath to wsdl:binding: wsdl:definitions[@targetNamespace='http://tempuri.org/' ]/wsdl:binding[@name='WSHttpBinding_IService'] XPath 到错误源: wsdl:definitions[@targetNamespace='http://tempuri.org/' ]/wsdl:service[@name='PBMBService']/wsdl:port[@name='WSHttpBinding_IService']

正在生成文件...警告:无代码 已生成。如果你试图 生成一个客户端,这可能是 因为元数据文档确实如此 不包含任何有效的合同或 服务或因为所有 发现合同/服务 存在于/reference 集合中。 验证您是否通过了所有 工具的元数据文档。

警告:如果要生成 来自架构的数据协定确保 以使用/dataContractOnly 选项。

如何在不重新启动的情况下生成服务模型元数据

(免责声明,我绝不是这方面的专家,但我很感兴趣,并在谷歌上搜索了一下)

当您对服务进行更改并重新启动它时,运行服务的帐户是否有可能更改?就像当你启动计算机时,它默认在IIS下运行,但是当你修改它时,你在卡西尼号或类似的东西下启动它?

我问的原因是,根据这篇博文,WCF 服务需要对临时文件夹具有写入权限,因为它执行一些动态代码生成并且需要一些位置来存储它。

只是一个值得考虑的想法。

更多详情:

  • WCF 元数据错误:无法导入 wsdl:binding
  • 无法使用 svcutil 生成 WCF 代理,但检索 wsdl 有效?