1

Ich arbeite an einem asp.net-net-Projekt, das einen Workflow-Service aufruft. Ich möchte den Dienst aufrufen, ohne ihn der Lösung als Dienst hinzuzufügen. Ich verwende den folgenden CodeRufen Sie den Workflow-Dienst auf, ohne ihn als Service zur Lösung hinzuzufügen.

XNamespace ns = "http://schemas.microsoft.com/2003/10/Serialization/"; 

var factory = new ChannelFactory<IGenericService>(new BasicHttpBinding(), new EndpointAddress("http://localhost:2757/BPMNSimple.xamlx")); 

var proxy = factory.CreateChannel(); 

var request = Message.CreateMessage(MessageVersion.Soap11, "http://tempuri.org/IService/TestSimple", new XElement(ns + "string", "45")); 

var response = proxy.GetData(request); 

var xml = (XElement)XElement.ReadFrom(response.GetReaderAtBodyContents()); 
var message = xml.Value; 
lblMessage.Text = message.ToString(); 

In der xamlx Datei der Aktivität erhält ein Argument, das ein String ist und die sendreplytoreceive Aktivität gibt zwei Parameter als Ausgang. Ich erhalte die folgende Fehlermeldung, wenn ich diesen Code ausführen:

System.ServiceModel.CommunicationException: The server did not provide a meaningful reply; 
this might be caused by a contract mismatch, a premature session shutdown or an internal server error. Server stack trace: 
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: 
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
at _Default.IGenericService.GetData(Message request) 
at _Default.Page_Load(Object sender, EventArgs e) in c:\Users\marios\Documents\Visual Studio 2010\WebSites\WebSite2\Default.aspx.cs:line 63 

Antwort

0

Im ersten Fall, schalten IncludeExceptionDetailsInFaults auf auf der Serviceseite. Sie können mehr Informationen von http://msdn.microsoft.com/en-us/library/system.servicemodel.description.servicedebugbehavior.includeexceptiondetailinfaults.aspx erhalten.

<serviceDebug includeExceptionDetailInFaults="true" /> 

Eidt: Also das nächste, was zu versuchen ist, die in Fehler gebaut mit Handling zu sehen, wenn Sie sehen können

Sie werden so etwas wie die folgenden zu Ihren Diensten web.config hinzufügen müssen was geschieht, dient. Lesen Sie MSDN article. Sie müssen some hinzufügen:

<configuration> 
<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel" 
       switchValue="Information, ActivityTracing" 
       propagateActivity="true"> 
     <listeners> 
      <add name="traceListener" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData= "c:\log\Traces.svclog" /> 
     </listeners> 
    </source> 
    </sources> 
</system.diagnostics> 

Dies wird eine WCF-Protokolldatei erstellen, wo Sie (hoffentlich) sehen ein Fehler auf Ihre Anfrage bezieht.

+0

Ich habe es gemacht und ich habe einen anderen Fehler. Ich habe meinen Beitrag bearbeitet. – user1292656