从sharepoint的测试机器中消耗wcf

时间:2014-01-16 12:27:30

标签: c# wcf sharepoint

背景:

我有一个WCF,它对我的​​开发人员,他和他的客户都很有用。 我将它部署在测试服务器上。

测试由3层,内容,发布和网络构成。内容是我将所有内容放入Sharepoint的地方,它只能从VPN访问它的http,这意味着如果我想从我的开发机器转到测试内容的网站我放入explorer {{ 1}}。

发布是中间的,我从不接触它,数据从内容移动到另一个2.

网络是向公众开放的,是https并且有负载均衡器,您可以使用此网址https://testnew.mizrahi-tefahot.co.il/_vti_bin/skywcf/skyservice.svc

测试我的WCF

问题:

在我的开发中,我完全消耗了我的开发WCF。 MEX在测试内容和测试网络方面都很有效,你可以在上面的链接中看到,同样是wsdl。

在尝试创建客户端以使用测试Web服务时,我收到此错误消息 (在尝试“添加服务引用”时):

  

下载时出错   'https://testnew.mizrahi-tefahot.co.il/_vti_bin/skywcf/skyservice.svc/_vti_bin/ListData.svc/ $的元数据'。   请求失败,HTTP状态为400:错误请求。元数据   包含无法解析的引用:   'https://testnew.mizrahi-tefahot.co.il/_vti_bin/skywcf/skyservice.svc'。   内容类型application / soap + xml; charset = utf-8不受支持   服务   https://testnew.mizrahi-tefahot.co.il/_vti_bin/skywcf/skyservice.svc。   客户端和服务绑定可能不匹配。远程服务器   返回错误:(415)无法处理消息,因为   内容类型'application / soap + xml; charset = utf-8'不是   期望的类型'text / xml; charset = utf-8'..如果定义了服务   当前的解决方案,尝试构建解决方案并添加服务   再次参考。

在尝试使用我的开发机器中的测试内容服务时,它会创建服务引用,但在尝试调用方法时,我会获得当您尝试通过浏览器访问服务时获得的网页的html。看着提琴手,我看到他给了我“对象移到这里”的消息,在网址上添加了一些令牌(这是html):

http://testing

任何帮助?

编辑:网络配置

服务器

<html><head><title>Object moved</title></head><body> <h2>Object moved to <a href="%2f_vti_bin%2fSkyWCF%2f(X(1)S(5hwwif450myurs45h5ihnn55))%2fSkyService.svc%3fAspxAutoDetectCookieSupport%3d1">here</a>.</h2> </body></html>

客户

<?xml version="1.0"?>
<configuration>
  <system.web>
    <customErrors mode="RemoteOnly"/>
  </system.web>
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="Sharepoint.BankMizrahi.Sky.WCF.ServiceBehavior" name="Sharepoint.BankMizrahi.Sky.WCF.SkyService">
        <endpoint address="" binding="basicHttpBinding" contract="Sharepoint.BankMizrahi.Sky.WCF.ISkyService">
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Sharepoint.BankMizrahi.Sky.WCF.ServiceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment>
      <baseAddressPrefixFilters>
        <add prefix="http://mizrahi"/>
      </baseAddressPrefixFilters>
    </serviceHostingEnvironment>
  </system.serviceModel>
  <appSettings>
    <add key="siteUrl" value="http://mizrahiadmin/sky" />
    <add key="LogName" value="SkyService" />
  </appSettings>
</configuration>

1 个答案:

答案 0 :(得分:0)

好吧,似乎答案是服务器是sessionStateEnabled并因此试图使用cookie而解决方案只是禁用cookie

<system.web>
<sessionState mode="Off"/>

对于测试内容而言,关于测试网站似乎我需要找到一种方法来传递负载均衡,即剥离https