首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过在.Net库项目中添加作为网络参考的方式来修正调用CRM2011Service时的“操作超时”?

如何通过在.Net库项目中添加作为网络参考的方式来修正调用CRM2011Service时的“操作超时”?
EN

Stack Overflow用户
提问于 2011-04-02 06:17:52
回答 1查看 2K关注 0票数 1

我在.Net 3.0类库项目中增加了CRM 2011 (就地)部署和发现服务作为web引用(而不是wcf引用),它是.Net 2.0中的多层解决方案的一部分(目前还不能升级,这就是为什么我试图将wcf服务作为web服务并使用它的基本basichttpbinding)。类库a.k.a在远程服务器上执行,让我们使用.Net远程处理来表示远程库。我正在使用下面的代码创建CRM 2011组织。

代码语言:javascript
复制
_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的以下消息并显示

操作超时

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

此外,以前,我试图通过而不是调用CRM2011Service,指定soap12协议版本,我得到了以下错误:

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

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

代码语言:javascript
复制
 _CrmDeployService.SoapVersion = SoapProtocolVersion.Soap12

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

问题:这是服务器上的客户关系管理配置、服务器上的HTTP设置或服务器上的WCF设置的问题,还是我做错了?如果代码有问题,请建议我应该如何做。

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

我们非常感谢各国的答复。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-15 07:50:33

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

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

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

Tier 01 ASP.Net应用程序+类库XYZ与WCf引用

Tier 02 (Windows (.Net Exe) +类库XYZ和WCf参考)+CRM2011WCF服务

新架构现在是:

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5521550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档