• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 846
  • Last Modified:

Vista Home: Use of NET.TCP terminates w3wp.exe and listener

For more than a week, i am trying to set up a IIS hosted wcf service project with net.tcp endpoint.
I am using Visual Studio 2008 on a Vista Home Premium OS.
I have succeeded in adding a net.tcp binding and enabling net.tcp protocol for the site and am using the project web option to host in local IIS webserver.
now, whenever i try to access the service or get metadata over mextcpbinding, after approx. 1 minute i get an error, w3wp.exe terminates (and restarts) and the listener seems to be terminated, too (i have no more listening port when checking with netstat, does not recover unless i restart the computer or change net.tcp binding info or similar).
This is the message i get when trying to get metadata from a client project in visual studio 2008:
Metadaten enthalten einen Verweis, der nicht aufgelöst werden kann: "net.tcp://lm-vi-nb-01:8080/WcfService1/Service1.svc/mextcp".
Der Server hat keine sinnvolle Antwort gegeben; dies kann durch einen nicht übereinstimmenden Vertrag, ein vorzeitiges Herunterfahren der Sitzung oder durch einen internen Serverfehler verursacht sein.
Wenn der Dienst in der aktuellen Projektmappe definiert ist, erstellen Sie die Projektmappe, und fügen Sie den Dienstverweis erneut hinzu.
If you are not familiar with the german, it says, that the server response does not make sense, the reason might be a service contract problem, an early session termination or an internal server error.
i do not find any event log entries or logfiles that refer to the error.
Here the latest web.config servicemodel section i tried, http working well, mextcp leading to the situation explained above:
      <system.serviceModel>
    <services>
                  <service name="WcfService1.Service1" behaviorConfiguration="WcfService1.Service1Behavior">
                        <endpoint address="" binding="wsHttpBinding" contract="WcfService1.IService1">
          <!--Bei der Bereitstellung muss das folgende Identitätselement entfernt oder ersetzt werden, um die Identität
              wiederzugeben, unter der der bereitgestellte Dienst ausgeführt wird. Wenn es entfernt wird, leitet WCF eine geeignete Identität
              automatisch ab. -->
                              <identity>
                                    <dns value="localhost"/>
                              </identity>
                        </endpoint>
                        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        <endpoint address="mextcp" binding="mexTcpBinding" contract="IMetadataExchange"/>
      </service>
            </services>
            <behaviors>
                  <serviceBehaviors>
                        <behavior name="WcfService1.Service1Behavior">
          <!--Legen Sie den Wert unten auf "false" fest, um die Veröffentlichung von Metadateninformationen zu vermeiden, und entfernen Sie den Metadatenendpunkt oben vor der Bereitstellung.-->
                              <serviceMetadata httpGetEnabled="true"/>
          <!--Damit in Fehlern Ausnahmedetails zum Debuggen angezeigt werden, legen Sie den Wert unten auf "true" fest. Legen Sie ihn vor der Bereitstellung auf "false" fest, um die Veröffentlichung von Ausnahmeinformationen zu vermeiden.-->
                              <serviceDebug includeExceptionDetailInFaults="true"/>
                        </behavior>
                  </serviceBehaviors>
            </behaviors>    
      </system.serviceModel>

I'd really be glad, if somebody could help me here!
0
LMalluche
Asked:
LMalluche
  • 3
  • 2
1 Solution
 
gemailjCommented:
the main problem is with the end point binding you are not using nettcp binding
the endpoint should be configured like this
<services>
  <service name="Microsoft.ServiceModel.Samples.CalculatorService"
           behaviorConfiguration="CalculatorServiceBehavior">
    ...
    <endpoint address=""
              binding="netTcpBinding"
              bindingConfiguration="Binding1" 
              contract="Microsoft.ServiceModel.Samples.ICalculator" />
    ...
  </service>
</services>

<bindings>
  <netTcpBinding>
    <binding name="Binding1" 
             closeTimeout="00:01:00"
             openTimeout="00:01:00" 
             receiveTimeout="00:10:00" 
             sendTimeout="00:01:00"
             transactionFlow="false" 
             transferMode="Buffered" 
             transactionProtocol="OleTransactions"
             hostNameComparisonMode="StrongWildcard" 
             listenBacklog="10"
             maxBufferPoolSize="524288" 
             maxBufferSize="65536" 
             maxConnections="10"
             maxReceivedMessageSize="65536">
      <readerQuotas maxDepth="32" 
                    maxStringContentLength="8192" 
                    maxArrayLength="16384"
                    maxBytesPerRead="4096" 
                    maxNameTableCharCount="16384" />
      <reliableSession ordered="true" 
                       inactivityTimeout="00:10:00"
                       enabled="false" />
      <security mode="Transport">
        <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
      </security>
    </binding>
  </netTcpBinding>
</bindings>

Open in new window

0
 
gemailjCommented:
the main problem with your configuration is the you are using wsHttpBinding

see this line

0
 
gemailjCommented:
this should be

0
 
LMallucheAuthor Commented:
sorry, perhaps i did not express myself clearly.
Of cource, i tried to use a net.tcp endpoint, too. i then can get the metadata using http, if there is a standard mex endpoint, too.
but whenever i actually use a mextcp or net.tcp endpoint, the worker process (exit code -15) and the net.tcp listener terminate.
0
 
LMallucheAuthor Commented:
ok, finally i found a solution, though i still don't understand what happened.
i installed win 7 ultimate 64bit and did the very same setup and everything just works fine!
i thought, up to 3 connections were fine with vista home, maybe i was wrong.
thanks gemailj for your efforts trying to help me! btw, the mextcp endpoint is ok on its own, too, though not very useful... ;-)
0

Featured Post

Granular recovery for Microsoft Exchange

With Veeam Explorer for Microsoft Exchange you can choose the Exchange Servers and restore points you’re interested in, and Veeam Explorer will present the contents of those mailbox stores for browsing, searching and exporting.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now