0

.NET Framework4で開発されたWCFサービスがあります。開発マシンはWindows8、Visual Studio 2012を実行しており、IIS8で既にサービスを公開しています。

次に、WindowsXPマシンでサービスを公開する必要があります。IIS 5.1でいくつかのエラーが発生したため、このバージョンの使用をあきらめ、VS2010でIISExpress7.5を使用しようとしています。

サービスは問題なく起動しますが、メタデータが無効になっていると表示されるため、WSDLにアクセスできません。

WCFサービスでメタデータをアクティブ化するにはどうすればよいですか?

web.configに従います。

<?xml version="1.0"?>
    <configuration>
       <configSections>
          <sectionGroup name="SAP.Middleware.Connector">
            <sectionGroup name="ClientSettings">
              <section name="DestinationConfiguration"                     type="SAP.Middleware.Connector.RfcDestinationConfiguration, sapnco"/>
            </sectionGroup>
          </sectionGroup>
        </configSections>
        <SAP.Middleware.Connector>
          <ClientSettings>
            <DestinationConfiguration>
              <destinations>
                <add NAME="XXX" USER="XXX" PASSWD="XXX" CLIENT="XXX" LANG="EN"           ASHOST="mc0.sap.XXX.com" SYSNR="XXX" MAX_POOL_SIZE="XXX" IDLE_TIMEOUT="XXX"/>
                <add NAME="QA" USER="XXX" PASSWD="XXX" CLIENT="XXX" LANG="EN"           ASHOST="XXX" SYSNR="XXX" MAX_POOL_SIZE="XXX" IDLE_TIMEOUT="100"/>
              </destinations>
            </DestinationConfiguration>
          </ClientSettings>
        </SAP.Middleware.Connector>
        <startup useLegacyV2RuntimeActivationPolicy="true">
          <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
        </startup>
        <appSettings/>
        <system.web>
          <compilation targetFramework="4.0" debug="true"/>
          <httpRuntime/>
        </system.web>
        <system.serviceModel>
          <behaviors>
            <serviceBehaviors>
              <behavior>
                <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
                <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
                <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
                <serviceDebug includeExceptionDetailInFaults="true"/>
              </behavior>
            </serviceBehaviors>
          </behaviors>
          <protocolMapping>
            <add binding="basicHttpsBinding" scheme="https"/>
          </protocolMapping>
          <serviceHostingEnvironment aspNetCompatibilityEnabled="true"           multipleSiteBindingsEnabled="true"/>
        </system.serviceModel>
        <system.webServer>
          <modules runAllManagedModulesForAllRequests="true"/>
          <!--
              To browse web app root directory during debugging, set the value below to true.
              Set to false before deployment to avoid disclosing web app folder information.
            -->
          <directoryBrowse enabled="true"/>
        </system.webServer>
      </configuration>
4

2 に答える 2

0

設定ファイルでmexを有効にしているかどうかを確認する必要があります。

例(httpからmex)。

サービス動作では、次のオプションを有効にする必要があります

 <serviceMetadata httpGetEnabled="true" />

エンドポイントリストに、以下を追加する必要があります

<endpoint address="/mex" binding="mexHttpBinding" 
      contract="IMetadataExchange" />

構成を保存して再実行します。

于 2013-01-15T14:42:58.693 に答える
0

このトピックは、WEBMATRIXを使用してIISExpressでWCFアプリケーションをホストするように指示していることがわかりました。それは私にとって完璧に機能しました。

それが他の誰かを助けることができることを願っています!

http://blogs.iis.net/vaidyg/archive/2010/07/29/serving-external-traffic-with-webmatrix-beta.aspx

于 2013-01-15T16:31:46.573 に答える