Questions tagged «wcf»

Windows Communication Foundation是.NET Framework的一部分,它为快速构建面向服务的应用程序提供了统一的编程模型。

21
WCF错误“这可能是由于在HTTPS情况下未使用HTTP.SYS正确配置服务器证书”
使用WCF调用从Windows服务到在Web服务器上运行的WCF服务时遇到问题。该呼叫已经运行了几个星期,但随后突然停止工作,此后一直没有工作。 我得到的例外是: 发生一般错误System.ServiceModel.CommunicationException:发出HTTP请求时发生错误 然后说 这可能是由于在HTTPS情况下未使用HTTP.SYS正确配置服务器证书。这也可能是由于客户端和服务器之间的安全绑定不匹配引起的。 我在两端使用的安全性是wsHttpBinding,没有任何类型的加密。它还只是使用HTTP而不是HTTPS,所以我不确定为什么它抱怨HTTPS。 内部异常堆栈的其余部分是: SystemNet.WebException:基础连接已关闭:发送时发生意外错误。---> System.IO.IOException:无法将数据写入传输连接:提供了无效的参数。---> System.Net.Sockets.SocketException:System.Net.Sockets.NetworkStream.MultipleWrite(BufferOffsetSize []处的System.Net.Sockets.Socket.MultipleSend(BufferOffsetSize []缓冲区,SocketFlags socketFlags)提供了无效的参数缓冲区) 我还应注意,程序中发生这种情况的位置是在对Web服务的调用的“执行”行上-即,当我调用Web服务并将其传递给包装好的DataContract对象时,炸毁。 这项服务所做的全部工作就是传递大量XML(作为.NET对象传递给客户端的调用),然后它会做一些工作。可能正在传输大约100-200k的XML。我已经将两端的数据大小限制提高到超过6兆,但这似乎无济于事。 有任何想法吗? 有关此问题的更多信息: 当我们在本地复制客户端环境时,我们发现除非进行以下更改,否则我们将无法上传大量XML:1.在服务器上,将“ maxRequestLength”设置为100 MB(比我们发送的要高)2.在对于客户端,我们将dataContractSerializer标记下的maxItemsInObjectGraph的值设置为“ 2147483646”。 通过这些更改,我们的本地安装成功上传。但是,客户端在其服务器上的安装仍然失败。有趣的是,一旦我们在服务器上更改了maxRequestLength的值,我们的测试安装就会开始抛出一个与maxItemsInObjectGraph设置有关的错误。在我们客户的服务器上,仍然发生原始的“ HTTP.sys”错误。 如前所述,我们根本没有使用SSL,另外还有2个Web服务调用以相同的方式执行和上传XML。但是,由于无法正常工作的服务呼叫会传输更多数据,因此这似乎是一个大小问题。 但是,如果客户端遇到的问题与我们的测试安装中的问题相同,那么我不明白为什么客户端错误消息不会与ObjectGraph错误相关。 是否有可能我们为客户端上的每个可能的错误都得到了通用的“无效参数”“ HTTP.sys”错误(即,它确实也得到了objectGraph错误,但没有显示出来?)

5
如何在Android上使用WCF服务
我正在.NET中创建服务器,并为Android创建客户端应用程序。我想实现一种身份验证方法,该方法将用户名和密码发送到服务器,然后服务器发送回会话字符串。 我对WCF不熟悉,因此非常感谢您的帮助。 在Java中,我编写了以下方法: private void Login() { HttpClient httpClient = new DefaultHttpClient(); try { String url = "http://192.168.1.5:8000/Login?username=test&password=test"; HttpGet method = new HttpGet( new URI(url) ); HttpResponse response = httpClient.execute(method); if ( response != null ) { Log.i( "login", "received " + getResponse(response.getEntity()) ); } else { Log.i( "login", "got …
79 .net  android  wcf  rest 

6
如何检查Windows服务是否已在C#中安装
我编写了Windows服务,将WCF服务公开给安装在同一台计算机上的GUI。在运行GUI时,如果无法连接到服务,则需要知道是由于尚未安装服务应用程序还是因为服务未运行。如果是前者,我将要安装它(如描述这里); 如果是后者,我将要启动它。 问题是:如何检测是否已安装该服务,然后检测到已安装该服务,如何启动它?

2
WCF反序列化如何在不调用构造函数的情况下实例化对象?
WCF反序列化有一些不可思议的事情。如何在不调用其构造函数的情况下实例化数据协定类型的实例? 例如,考虑以下数据合同: [DataContract] public sealed class CreateMe { [DataMember] private readonly string _name; [DataMember] private readonly int _age; private readonly bool _wasConstructorCalled; public CreateMe() { _wasConstructorCalled = true; } // ... other members here } 通过获取此对象的实例时,DataContractSerializer您会看到字段_wasConstructorCalled为false。 那么,WCF如何做到这一点?这是其他人也可以使用的技术,还是对我们隐藏?



4
什么是w3wp.exe?
我有一个WCF在本地系统上的服务用户下运行的服务。每次我尝试调试时,都会给我一个消息Attach Security warning。 在Visual Studio中,默认情况下(即使没有附加),我也会收到此错误: 附加此过程可能会损害您的计算机。如果以下信息看起来可疑或您不确定,请不要附加到此过程 名称:C:\ Windows \ System32 \ inetsrv \ w3wp.exe 什么w3wp.exe啊 根据Google搜索,我认为它与IIS有关。但是它是做什么的呢?应该更改什么设置,以便每次尝试在本地系统上调试时都不会显示此消息?
76 wcf  debugging  iis  iis-7  w3wp 

6
.NET中的SOAP客户端-参考还是示例?
背景: 我正在创建一个Web服务站点,它将通过SOAP以及可能的其他协议提供多种类型的简单服务。目的是使转换,RSS解析,垃圾邮件检查和许多其他类型的工作变得容易。该网站将主要针对初学者。 我的问题: 我从来没有为此开发任何C#或.NET。多年前我确实破解了一些VB6,仅此而已。现在,我需要一些在C#中通过SOAP进行RPC调用的示例。我曾尝试搜索网络和Stack Overflow,以找到此资源,但没有找到很多资源,而且我也不知道如何对资源进行排名(哪些资源过旧?哪些资源不正确?等)。 我创建了一个简单的示例服务,在PHP中这样调用: <?php $client = new SoapClient('http://webservi.se/year'); //URL to the WSDL echo $client->getCurrentYear(); //This method returns an integer, called "year" ?> 我现在想在C#中尽可能轻松地调用此方法。非常欢迎所有参考和示例。我从哪开始呢?我可以利用哪些类/模块/任何内容? 如果有更好的通信框架(后端是可扩展的),则该解决方案根本不必涉及SOAP,但是请注意,服务器端是在Unix上的PHP中实现的,因此Microsoft专有的解决方案完全没有问题。服务器端。 请注意,我需要这样做,以便为J. Random Web Developer编写可能遵循的文档(即使它们位于共享的Web托管上)。因此,我认为最好的方法应该是仅在代码中执行此操作,但是当然也欢迎使用其他方法执行此操作。
76 c#  wcf  soap  soap-client 

3
为什么WCF中不允许方法重载?
假设这是一个 ServiceContract [ServiceContract] public interface MyService { [OperationContract] int Sum(int x, int y); [OperationContract] int Sum(double x, double y); } C#中允许方法重载,但是WCF不允许您重载operation contracts 托管程序将InvalidOperationException在托管时抛出
75 c#  .net  wcf  overloading 

22
WCF,在ServiceHost指令中找不到Service属性值
我正在尝试使用IIS 6托管我的服务,但我一直收到此异常。 Server Error in '/WebServices' Application. -------------------------------------------------------------------------------- The type 'QS.DialogManager.Communication.IISHost.RecipientService', provided as the Service attribute value in the ServiceHost directive could not be found. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and …
75 c#  wcf  iis 

9
大型WCF Web服务请求失败,并显示(400)HTTP错误请求
我遇到了这个看似常见的问题,无法解决。 如果我使用数组参数中相对较少的项调用WCF Web服务(我已经测试了多达50个),那么一切都很好。 但是,如果我用500个项目调用Web服务,则会收到Bad Request错误消息。 有趣的是,我在服务器上运行了Wireshark,看来请求甚至没有到达服务器上-客户端正在生成400错误。 例外是: System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (400) Bad Request. ---> System.Net.WebException: The remote server returned an error: (400) Bad Request. system.serviceModel我的客户端配置文件的部分是: <system.serviceModel> <bindings> <wsHttpBinding> <binding name="WSHttpBinding_IMyService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> <readerQuotas maxDepth="32" …
74 c#  .net  wcf  web-services 


10
内容类型text / xml;服务不支持charset = utf-8
我对WCF服务有问题。我有一个控制台应用程序,不需要使用app.config就可以使用该服务,因此必须通过代码设置端点等。我确实有对svc的服务引用,但不能使用app.config。这是我的代码: BasicHttpBinding binding = new BasicHttpBinding(); EndpointAddress address = new EndpointAddress("http://localhost:8731/WcfServicio/MiServicio"); MiServicioClient svc = new MiServicioClient(binding, address); object ob = svc.PaisesObtener(); 在我执行的最后一行,svc.PaisesObtener()我得到了错误: Content Type text/xml; charset=utf-8 was not supported by service http://localhost:8731/WcfServicio/MiServicio. The client and service bindings may be mismatched.
74 wcf  endpoint 

8
在.NET中查找下一个TCP端口
我想为WCF服务调用创建一个新的net.tcp:// localhost:x / Service端点,并动态分配新的开放TCP端口。 我知道当我打开到给定服务器的连接时,TcpClient将分配一个新的客户端端口。 是否有一种简单的方法来查找.NET中的下一个打开的TCP端口? 我需要实际的数字,以便可以在上面构建字符串。0不起作用,因为我需要将该字符串传递给另一个进程,以便可以在该新通道上进行回调。
74 c#  .net  wcf  networking  tcp 

21
WCF给出了不安全的或不正确的安全错误
我正在尝试使用远程svc Web服务。我使用创建了代理类svcutil.exe,然后将该类添加到控制台应用程序中,但是会产生错误: 从另一方收到不安全的错误或错误的安全错误。请参阅内部故障异常以获取故障代码和详细信息。 System.ServiceModel.FaultException:验证消息的安全性时发生错误 我没有创建WCF端,它是一个远程svc。请帮忙。 <?xml version="1.0" encoding="utf-8"?> <configuration> <system.serviceModel> <bindings> <basicHttpBinding> <binding name="EloquaDataTransferService" 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="Mtom" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="TransportWithMessageCredential"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> …
74 c#  wcf 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.