| 

.NET C# Java Javascript Exception

2
Hallo NG,

ich habe meinen ersten WCF Service fertig gestellt und im VS 2010 getestet alles lief wie erwartet. Es handelt sich um einen SOAP Server der von mehreren Clients Daten empfängt und verarbeitet.

Diesen Service möchte ich nun auf einem IIS 7.5 zu laufen bekommen.

In der App.Config der Library steht:
baseAddress="http://localhost:8732/Design_Time_Addresses/TIPServerManagementLibrary/TipSrvManager/" />

Gehe ich richtig davon aus wenn der Service z.B. auf die Domäne http://www.xyz/ arbeiten soll das ich folgende Änderungen vornehmen muss
baseAddress="http://www.xyz:8732/TIPServerManagementLibrary/TipSrvManager/" /> ??

Ferner die Site auf dem IIS.
In der web.config steht:
<service name="TIPServerManagementLibrary.TipSvrService">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="" contract="TIPServerManagementLibrary.ITipSrvManager"/>
</service>

Gehe ich richtig davon aus das ich bei dieser Seite das Binding auf http://www.xyz:8732/ eintragen muss?

Zum Schluss noch folgende Frage:

Der Service hat das Attribut [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
Kann ich davor ausgehen wenn sich mehrere Clients zu selben Zeit anmelden, das der IIS für jeden Client einen eigenen Thread aufruft oder muss ich dieses verwalten?

Danke im voraus für jeden Hinweis und Tipp.

Grüße Ingo
08.12.2012
ingo 122 1 6
2 Antworten
2
Ein funktionierender Serviceeintrag, in der web.config sieht wie folgt aus:
<system.serviceModel>
<services>
<service behaviorConfiguration="TIPServerManagementLibrary.TipSvrServiceBehavior" name="TIPServerManagementLibrary.TipSvrService">
<endpoint address="" binding="basicHttpBinding" contract="TIPServerManagementLibrary.ITipSrvManager">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="TIPServerManagementLibrary.TipSvrServiceBehavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="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="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ITipSrvManager" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>


Das ist die Serverseite. Ein http://xyz:8732/ hat da nichts zu suchen. Das benötigst Du erst auf der Clientseite, wenn Du den Endpunkt ansprechen willst. Im Client könntest Du dann wie folgt darauf zugreifen: (Voraussgesetzt Du hat die Proxieklassen (wdsl) mit Visual Studio generiert)
private TipSvrServiceClient GetService()
{

BasicHttpBinding myBinding = new BasicHttpBinding();
#if DEBUG
myBinding.OpenTimeout = new TimeSpan(0,5,0);
myBinding.CloseTimeout = new TimeSpan(0, 5, 0);
myBinding.ReceiveTimeout = new TimeSpan(0, 5, 0);
myBinding.SendTimeout = new TimeSpan(0, 5, 0);
#else
myBinding.OpenTimeout = new TimeSpan(0, 1, 0);
myBinding.CloseTimeout = new TimeSpan(0, 1, 0);
myBinding.ReceiveTimeout = new TimeSpan(0, 1, 0);
myBinding.SendTimeout = new TimeSpan(0, 1, 0);
#endif
myBinding.MaxBufferSize = 6553600;
myBinding.MaxBufferPoolSize = 524288;
myBinding.MaxReceivedMessageSize = 6553600;
myBinding.ReaderQuotas.MaxArrayLength = 16384;
myBinding.ReaderQuotas.MaxBytesPerRead = 4096;
myBinding.ReaderQuotas.MaxNameTableCharCount = 16384;
myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
myBinding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
myBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;

EndpointAddress myEnd = null;
myEnd = new EndpointAddress("http://xyz.de:8732/TipSrvManager.svc");

TipSvrServiceClient client = new TipSvrServiceClient(myBinding, myEnd);

return client;
}


So, ich hoffe, diese Beispiele helfen Dir weiter, die richtige Konfiguration herzustellen.
10.12.2012
JEwen 2,7k 5
0
Hallo,

danke für Deine Hilfe. Ich hoffe jetzt komme ich weiter!!

Grüße Ingo
10.12.2012
ingo 122 1 6

Stelle deine .net-Frage jetzt!