繁体   English   中英

如何通过在.Net库项目中添加为Web参考来尝试调用CRM 2011服务时解决“操作超时”问题?

[英]How to fix “The operation time out” when trying to call CRM 2011 Service by adding as web reference in .Net library project?

我在.Net 3.0类库项目中添加了CRM 2011(本地)部署和发现服务作为Web参考(而不是WCF参考),这是.Net 2.0中多层解决方案的一部分(对于暂时无法升级,这就是为什么我尝试将wcf服务用作Web服务并使用其basichttpbinding)。 该类库又名在远程服务器上执行,可以说是使用.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 Service的以下消息

操作超时

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

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

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

因此,我在代码中添加了以下行:

 _CrmDeployService.SoapVersion = SoapProtocolVersion.Soap12

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

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

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

非常感谢您的回应。

谢谢。

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

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

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

Tier 01 ASP.Net应用程序+具有WCf参考的类库XYZ


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

现在,新架构为:

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


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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM