簡體   English   中英

創建web.config

[英]Creating web.config

我使用放置在IIS應用程序池中的Web服務創建了非常簡單的ASP.NET網站。 端口和地址在IIS的站點設置中定義。 Web.config非常簡單:

<configuration>
    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>

</configuration>

它甚至不包含有關服務的信息。

我查看了web.config其他示例,發現它們更大了:

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
  </startup>
  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="jsonHttp" />

      </webHttpBinding>
      <basicHttpBinding>
        <binding name="basicHttp"/>
      </basicHttpBinding>
    </bindings>
    <services>
      <service name="HelloDeviceCntrl.AaaComModule.AaaComModule">
        <endpoint address="http://localhost:8001/json/Aaacom/" binding="webHttpBinding" bindingConfiguration="jsonHttp" contract="HelloDeviceCntrl.AaaComModule.IAaaComModule" behaviorConfiguration="JsonEndpointBehaviour"/>
        <endpoint address="http://localhost:8001/basic/Aaacom/" binding="basicHttpBinding" behaviorConfiguration="DefaultEndpointBehaviour" contract="HelloDeviceCntrl.AaaComModule.IAaaComModule" />
      </service>
      <service name="HelloDeviceCntrl.BaaModule.BaaModule">
        <endpoint address="http://localhost:8001/json/Baa/" binding="webHttpBinding" bindingConfiguration="jsonHttp" behaviorConfiguration="JsonEndpointBehaviour" contract="HelloDeviceCntrl.BaaModule.IBaaModule"/>
        <endpoint address="http://localhost:8001/basic/Baa/" binding="basicHttpBinding" behaviorConfiguration="DefaultEndpointBehaviour" contract="HelloDeviceCntrl.BaaModule.IBaaModule"/>
      </service>
      <service name="HelloDeviceCntrl.ABCModule.ABCModule" behaviorConfiguration="ABCModuleServiceBehaviour">
        <endpoint address="http://localhost:8001/json/ABC/" binding="webHttpBinding" bindingConfiguration="jsonHttp" contract="HelloDeviceCntrl.ABCModule.IABCModule" behaviorConfiguration="JsonEndpointBehaviour"/>
        <endpoint address="http://localhost:8001/basic/ABC/" binding="basicHttpBinding" behaviorConfiguration="DefaultEndpointBehaviour" contract="HelloDeviceCntrl.ABCModule.IABCModule"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!--<serviceMetadata httpGetEnabled="true" />-->
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="ABCModuleServiceBehaviour">
          <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8001/ABC/get"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="JsonEndpointBehaviour">
          <webHttp defaultOutgoingResponseFormat="Json" defaultBodyStyle="Wrapped" faultExceptionEnabled="true" automaticFormatSelectionEnabled="true" />
        </behavior>
        <behavior name="DefaultEndpointBehaviour">
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  </system.serviceModel>
  <appBaa>
    <add key="anykey1" value="anyvalue1" />
    <add key="ClientBaaProvider.ServiceUri" value="" />
  </appBaa>
  <system.web>
    <membership defaultProvider="ClientAuthenticationMembershipProvider">
      <providers>
        <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, serviceUri="" />
      </providers>
    </membership>
    <roleManager defaultProvider="ClientRoleProvider" enabled="true">
      <providers>
        <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

比較兩個配置時,我遇到了幾個問題。

為什么我的配置沒有端口和地址信息? 我可以手動添加到web.config並重載網站設置中的現有值嗎?

所有這些配置行應手動編輯還是根據某些項目設置附加?

據我所知,某些配置是根據項目設置附加的,而其他配置則是您自己添加的。 如果要使用具有特定地址和特定設置的certian端點,或者要使用簽名或加密的服務。

IP地址和端口信息(稱為站點綁定)由IIS(或其他使用它們的Web服務器)控制,因此您不會在web.config中看到它們(並且無法指定兩者,因為IIS可以不允許您在此類服務器級別設置的網站或應用程序級別執行此操作)。

您粘貼的示例文件包含有關WCF設置的信息,這與您的情況幾乎無關。 除非您非常了解WCF,否則不要以自己的方式解釋這些設置,並假定ASP.NET的行為相同。 那只是您的誤解,在任何情況下都應避免。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM