【发布时间】:2011-02-04 21:24:15
【问题描述】:
我有一个我的 ASP.NET 应用程序使用的 WCF Web 服务。它已经运行了很长一段时间了。
我刚刚添加了一个 Dev Express Grid(和 Dev Express DLL)和一个使用它们的新页面,现在我在 WSDL 上遇到了解析错误。
但奇怪的是,它在我的机器上运行良好,但在网络服务器机器上失败。 (两者都连接到相同的 Web 服务 WSDL。)
这是我收到的错误消息:
“/MyWebAppWebDev”应用程序中的服务器错误。 -------------------------------------------------- ------------------------------ 解析器错误 说明:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息并适当地修改您的源文件。 解析器错误消息:Reference.svcmap:无法为服务引用“MyWebAppService”生成代码。 无法导入 wsdl:portType 详细信息:运行 WSDL 导入扩展时引发异常:System.ServiceModel.Description.DataContractSerializerMessageContractImporter 错误:在命名空间“http://schemas.datacontract.org/2004/07”中引用类型“WebClientApp.MyWebAppService.ReferenceUpdatesDataContract,WebClientApp,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”,数据合同名称为“ReferenceUpdatesDataContract” /MyWebAppServiceLibrary.DataContracts' 无法使用,因为它与导入的 DataContract 不匹配。需要从引用类型中排除此类型。 错误源的 XPath://wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IMyWebAppReferenceDataServiceLib'] 无法导入 wsdl:binding 详细信息:导入 wsdl:binding 所依赖的 wsdl:portType 时出错。 wsdl:portType 的 XPath://wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IMyWebAppReferenceDataServiceLib'] 错误源的 XPath://wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='MyWebAppServicesDefaultEndpoint'] 无法导入 wsdl:port 详细信息:导入 wsdl:port 所依赖的 wsdl:binding 时出错。 wsdl:binding 的 XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='MyWebAppServicesDefaultEndpoint'] 错误源的 XPath://wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:service[@name='MyWebAppReferenceDataServiceLib']/wsdl:port[@name='MyWebAppServicesDefaultEndpoint'] 源错误: [没有相关的源代码行] 源文件:/MyWebAppWebDev/App_WebReferences/MyWebAppService/ 行:1我完全被这件事难住了。我检查了我的 web.config 端点地址,它是正确的(尤其是不在上面的错误消息中)。
欢迎任何想法。
我尝试过的事情:
- 向我的网站用户名授予对 C:\Windows\temp 的权限
- 将 C:\Windows\temp 权限授予我的应用程序池用户名
- 检查我的数据合同中没有一个是通用的并且其中包含 IsReference=true。
【问题讨论】: