希望有人能帮助我解决这个问题!
我正在为Microsoft CRM编写一个自定义插件,在创建或更新某些实体时,会在我们的Sharepoint实例的后台执行一些任务,这些任务无法通过CRM工作流完成,因为它们不能有功能。
问题是,在创建服务引用时,Web服务的定义以及端点地址等存储在DLL的.config文件中。部署CRM插件时,.config文件在将其部署到磁盘或数据库时不可用,并且一旦我尝试使用Web服务,插件就会失败。
我已经看过BasicHttpBinding的一些文档,但我不完全确定如何以编程方式创建Webservice,以便它完全包含在DLL中。
我并不担心能够在不重新编译的情况下修改细节,因为无论如何代码都会非常静态。
我尝试在项目中定义服务引用,如“TestDws”
BasicHttpBinding SharepointWS = new BasicHttpBinding();
SharepointWS.Name = "SharepointWebservice";
EndpointAddress EndPoint = new EndpointAddress("http://hostname/_vti_bin/dws.asmx");
TestDws.DwsSoapClient temp = new TestDws.DwsSoapClient(SharepointWS, EndPoint);
然而,此插件只是在这一点上缩短了。
最初的.config在配置方面没有更多的东西
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="DwsSoap" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://hostname/_vti_bin/dws.asmx"
binding="basicHttpBinding" bindingConfiguration="DwsSoap"
contract="TempDws.DwsSoap" name="DwsSoap" />
</client>
</system.serviceModel>
</configuration>
答案 0 :(得分:0)
我从头开始重新创建了服务引用,并使用了与上面相同的BasicHttpBinding方法,它第二次工作...虽然现在在Sharepoint Webservice上使用了HTTP401!