0

希望这里有人可以帮我解决这个问题!

我正在为 Microsoft CRM 编写一个自定义插件,它在创建或更新某些实体时,在我们的 Sharepoint 实例的后台执行一些任务,这些任务无法通过 CRM 工作流完成,因为它们没有功能.

问题是,在创建服务引用时,Web 服务的定义、端点地址等都存储在 DLL 的 .config 文件中。部署 CRM 插件时,.config 文件在将其部署到磁盘或数据库时不可用,并且一旦我尝试使用 Web 服务,插件就会失败。

我查看了 BasicHttpBinding 的一些文档,但我不完全确定如何以编程方式创建 Web 服务,以便它完全包含在 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>
4

1 回答 1

0

我从头开始重新创建了服务参考,并使用了与上面相同的 BasicHttpBinding 方法,并且它第二次工作......尽管现在在 Sharepoint Webservice 上使用了 HTTP401!

于 2013-10-28T19:21:48.527 回答