1

我在 .Net 3.0 类库项目中添加了 CRM 2011(本地)部署和发现服务作为 Web 参考(而不是 wcf 参考),该项目是 .Net 2.0 中的多层解决方案的一部分(以及用于暂时无法升级,这就是为什么我试图将 wcf 服务用作 Web 服务并使用它的基本 httpbinding)。类库又名在远程服务器上执行,比如说远程库,使用 .Net 远程处理。我正在使用以下代码创建 CRM 2011 组织。

_CrmDeployService = New DeploymentService()
        _CrmDeployService.SoapVersion = SoapProtocolVersion.Soap12

        _CrmDeployService.Url = CRMDeploymentServiceURl
        _CrmDeployService.Credentials = DomainCredentials

' Do all sorts of Active Directory STuff, 
'which is successfull
'Now Creat eCRM organization

 Dim CRMOrg As CRM2011DeploymentSvc.Organization = New CRM2011DeploymentSvc.Organization()
        CRMOrg.UniqueName = OrgUniqName
        CRMOrg.FriendlyName = OrgDispName
        CRMOrg.SqlServerName = SQLServerName
        CRMOrg.SrsUrl = ReportServerUrl
        CRMOrg.BaseCurrencyCode = CurrencyCode
        CRMOrg.BaseCurrencyName = CurrencyName
        CRMOrg.BaseCurrencySymbol = ""
        CRMOrg.State = CRM2011DeploymentSvc.OrganizationState.Enabled

    'Initialize Request Object to Send CRM Organization Request and set properties

      Dim req As New BeginCreateOrganizationRequest() With {.Organization = CRMOrg}
                    _CrmDeployService.Timeout = 720000
                    'Execute deployment service given createrequest object
                    Dim _
                        resp As BeginCreateOrganizationResponse = _
                            TryCast(_CrmDeployService.Execute(req), BeginCreateOrganizationResponse)

当我在单独的应用程序中执行上面的代码时,它可以完美运行。但是,当我在项目远程类库的一部分中编写相同的代码时,操作似乎持续了 15 分钟以上,然后返回并显示来自 CRM 服务的以下消息

操作超时

我非常确定远程调用没有问题。我在整个解决方案中都使用远程调用,也没有序列化问题。

另外,以前,我试图通过指定soap12协议版本来调用CRM 2011服务,但出现以下错误:

HTTP/1.1 415 无法处理消息,因为内容类型为 'text/xml; charset=utf-8' 不是预期的类型 'application/soap+xml; 字符集=utf-8'。

所以我在我的代码中添加了以下行:

 _CrmDeployService.SoapVersion = SoapProtocolVersion.Soap12

问题消失了,但现在我遇到了这个超时问题。

问题:这是服务器上的 CRM 配置或服务器上的 HTTP tiomeout 设置或服务器上的 WCF 服务设置的问题,还是我做错了?如果代码有问题,请建议我应该如何做。

如果需要任何类型的配置或设置,请同时告知。

非常感谢您的回复。

谢谢你。

4

1 回答 1

0

我想我已经发现了问题所在。WCF 服务在我使用basicHttpBinding模式(传统支持模式)时未返回错误,并且已在兼容模式下将 WCF 服务添加为 Web 服务。

当我在将库项目升级到 3.0 后删除 Web 服务引用并将它们添加为 WCF 服务引用时,返回了正确的错误。问题是缺少包含端点和绑定/合同信息的配置文件。

在开发多层系统(.Net Remoting)并通过 WCF 服务进行通信时,有必要将端点和绑定信息放在通信所涉及的所有层的应用程序配置文件中。我的场景是这样的:

第 1 层 ASP.Net 应用程序 + 类库 XYZ 与 WCf 参考


第 02 层 (Windows 服务(.Net Exe)+ 带有 WCf 参考的类库 XYZ)+ CRM 2011 WCF 服务)

新架构现在是:

第 01 层(客户端)(ASP.Net 应用程序(web.config 中添加的端点/绑定信息)+ 带有 WCF 服务参考的类库 XYZ)


第 02 层(远程服务器).Net Windows 服务(在 app.config 中添加的端点/绑定信息)+ 带有 WCF 服务参考的类库 XYZ)+ CRM 2011 WCF 服务

于 2011-04-15T07:50:33.313 回答