我有简单的WCF服务应用程序(基于本教程:Getting Started)。我的问题是,当我向我的应用程序添加一个函数并想使用下面的命令重新生成Proxy.cs文件时:
C:\kod>svcutil.exe /language:cs /out:Proxy.cs /config:app.config http://localhos
t:8000/PBMB
我得到以下结果。我知道重新生成这些文件的唯一解决方案是重新启动计算机。但每次改变任何事情时这样做都令人沮丧。有人可以帮忙吗?
结果:
Microsoft(R)服务模型元数据 工具[Microsoft(R)Windows(R) 传播基金会,版本 4.0.30319.1]版权所有(c)Microsoft Corporation。保留所有权利。
尝试从中下载元数据 'http://localhost:8000/PBMB'正在使用 WS-Metad ata Exchange或DISCO。错误: 无法导入wsdl:portType详细信息:An 运行a时抛出异常 WSDL导入扩展:System.Se rviceModel.Description.DataContractSerializerMessageContractImporter 错误:具有目标命名空间的架构 无法找到“http://PBMB”。 XPath到错误源: // WSDL:定义[@targetNamespace = 'http://PBMB'] / WSDL:对 ortType [@名称= 'IService']
错误:无法导入wsdl:binding 细节:导入时出错 wsdl:wsdl:binding的portType 依赖于。 XPath到wsdl:portType: // WSDL:定义[@targetNamespace = 'http://PBMB'] / WSDL: portType [@ name ='IService'] XPath to 错误来源: // WSDL:定义[@targetNamespace = 'http://tempuri.org/' ] / WSDL:结合[@名称= 'WSHttpBinding_IService']
错误:无法导入wsdl:port详细信息: 导入时出错 wsdl:绑定wsdl:port 依赖于。 XPath到wsdl:binding: // WSDL:定义[@targetNamespace = 'http://tempuri.org/' ] / WSDL:结合[@名称= 'WSHttpBinding_IService'] XPath到错误源: // WSDL:定义[@targetNamespace = 'http://tempuri.org/' ] / WSDL:服务[@名称= 'PBMBService'] / WSDL:端口[@名称= 'WSHttpBinding_IService']
生成文件...警告:没有代码 生成了。如果你想要 生成一个客户端,这可能是 因为元数据文件确实如此 不包含任何有效合同或 服务或因为所有 合同/服务被发现 存在于/ reference assemblies中。 确认您已通过全部 元数据文档到工具。
警告:如果您想要生成 来自模式的数据合同确保 使用/ dataContractOnly选项。
答案 0 :(得分:3)
(免责声明,我不是这个领域的专家,但我很感兴趣并且用Google搜索了一下)
当您更改服务并重新启动服务时,运行服务的帐户是否可能会发生变化?就像它默认情况下在你启动你的计算机时在IIS下运行但是当你修改它时你在Cassini或类似的东西下启动它?
我问的原因是因为根据this blog post,WCF服务需要具有对temp文件夹的写访问权,因为它执行一些动态代码生成并需要一些地方来存储它。
只是一个值得考虑的想法。
更多细节: