WCF-Dienst liefert Bad Request (Invalid Hostname) --> Fehler 400

Mel_One

Erfahrenes Mitglied
Hm, ich habe einen WCF-Service, der lokal in Visual Studio gehostet gut läuft. Auch wenn ich ihn auf einem Testserver veröffentliche, läuft er. Jetzt versuche ich ihn, in einer Produktivumgebung zu veröffentlichen. Dafür ist vom Admin auch eine Domain eingerichtet worden. Während die Veröffentlichung auf dem Testserver gut verlief, bekomme ich vom Live-Server immer nur folgende Meldung:
Bad Request (Invalid Hostname)

Hab jetzt auch schon einen Vormittag lang gegoogelt, aber keine Lösung gefunden, die bei mir wirkt.
Der Service selbst läuft mit folgender Config:
Code:
<?xml version="1.0"?>
<!--
    Hinweis: Alternativ zur manuellen Bearbeitung dieser Datei 
    können Sie auch mit dem Webverwaltungstool die Einstellungen für Ihre Anwendung konfigurieren. Verwenden Sie die Option 
    "Website->ASP.NET-Konfiguration" in Visual Studio. Eine 
    vollständige Liste aller Einstellungen und Kommentare befindet 
    sich in "machine.config.comments", im Allgemeinen unter 
    "\Windows\Microsoft.Net\Framework\v2.x\Config". 
-->
<configuration>
  <configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
          <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
          <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
          <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
        </sectionGroup>
      </sectionGroup>
    </sectionGroup>
  </configSections>
  <appSettings/>
  <connectionStrings/>
  <system.web>
    <!--
            Legen Sie beim Kompilieren debug="true" fest, um 
            Debugsymbole in die kompilierte Seite einzufügen. 
            Da dies die Leistung beeinträchtigt, sollte der 
            Wert nur beim Entwickeln auf "true" gesetzt werden.
        -->
    <compilation debug="true">
      <assemblies>
        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </assemblies>
    </compilation>
    <!--
            Der Abschnitt <authentication> ermöglicht die Konfiguration 
            des Sicherheitsauthentifizierungsmodus, mit dem 
            ASP.NET eingehende Benutzer identifiziert. 
        -->
    <authentication mode="None"/>
    <!--
            Der Abschnitt <customErrors> ermöglicht die Konfiguration 
            der Vorgehensweise bei unbehandelten Fehlern während 
            der Anforderungsausführung. Insbesondere können 
            Entwickler HTML-Fehlerseiten konfigurieren, die anstelle 
            einer Fehlerstapelüberwachung angezeigt werden.
 -->
    <customErrors mode="Off"></customErrors>

    <pages>
      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </controls>
    </pages>
    <httpHandlers>
      <remove verb="*" path="*.asmx"/>
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>
  </system.web>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <providerOption name="CompilerVersion" value="v3.5"/>
        <providerOption name="WarnAsError" value="false"/>
      </compiler>
    </compilers>
  </system.codedom>
  <!--
        Der Abschnitt "system.webServer" ist für das Ausführen von ASP.NET AJAX unter
        Internetinformationsdienste 7.0 erforderlich. Für frühere Versionen von IIS ist der Abschnitt nicht erforderlich.
    -->
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated"/>
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </handlers>
  </system.webServer>
  <system.serviceModel>
    <serviceHostingEnvironment>

      <baseAddressPrefixFilters>

        <add prefix="http://webservices.test.ch"/>

      </baseAddressPrefixFilters>

    </serviceHostingEnvironment>
    <services>
      <service behaviorConfiguration="CrawlerWCF1._0.CrawlerServiceBehavior"
       name="CrawlerWCF1._0.CrawlerService">
        
        <host>
          <baseAddresses>
            <add baseAddress="http://webservices.test.ch"/>
          </baseAddresses>
        </host>

        <endpoint address="http://webservices.test.ch" binding="ws2007HttpBinding" contract="CrawlerWCF1._0.ICrawlerService">
          <identity>
            <dns value="webservices.test.ch" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
      <service behaviorConfiguration="CrawlerWCF1._0.CrawlerUserEditorBehavior"
       name="CrawlerWCF1._0.CrawlerUserEditor">
        <endpoint address="http://webservices.test.ch" binding="ws2007HttpBinding" contract="CrawlerWCF1._0.ICrawlerUserEditor">
          <identity>
            <dns value="webservices.test.ch" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="CrawlerWCF1._0.Service1Behavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
        <behavior name="CrawlerWCF1._0.CrawlerServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
        <behavior name="CrawlerWCF1._0.CrawlerUserEditorBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
        <behavior name="metadataSupport">
          <!-- Enables the IMetadataExchange endpoint in services that -->
          <!-- use "metadataSupport" in their behaviorConfiguration attribute. -->
          <!-- In addition, the httpGetEnabled and httpGetUrl attributes publish -->
          <!-- Service metadata for retrieval by HTTP/GET at the address -->
          <!-- "http://localhost:8080/SampleService?wsdl" -->
          <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
        </behavior>

      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

Evtl. findet da ja wer einen Fehler.
Gruss, Mel_One
 

Mel_One

Erfahrenes Mitglied
k, das ging schon gut in die richtige Richtung. Obwohl unser Admin meinte, das sei schon richtig eingestellt, hat er wohl die Umleitung von der Firewall zur neu eingerichteten Webapplikation (mit neuer, eigener IP) wohl vergessen, einzurichten. Aber danke für die Hilfe. :)