Tag: #wcf

网络服务入门

我必须在我的工作中实现一个Web服务,问题是我不知道Web服务是什么。 你能给我一些入门参考,并了解人们的要求吗? 也许一些好书也…… 谢谢。

如何更改不影响客户端的WCF服务合同?

我是新手,但在阅读一些关于wcf的文章后我才知道,如果你改变了ServcieContrcat,那么你不仅要改变服务端,而且还要改变客户端,这真的很难管理。 Example 1: 开发人员必须为订单处理创建WCF服务,具有以下function:GetOrderById,GetOrdersByStatus,SaveOrder ServiceContract可能如下所示 [ServiceContract] public interface IOrderService { [OperationContract] Order GetOrderById(int orderId); [OperationContract] List GetOrdersByStatus(OrderStatus orderStatus); [OperationContract] void SaveOrder(Order order) } 例如,月之后,项目经理说:好的,我们的客户需要另外的function:DeleteOrderById,GetOrdersByCustomerId并且不再需要GetOrdersByStatus,我们需要GetOrdersByStatusAndCustomerId 开发人员必须更新ServiceContrcat并更新客户端。 如您所见,ServiceContrcat中的任何更改都非常困难 所以我正在寻找最好的指导如何开发wcf服务,如果我们扩展function或任何类型的更改不会产生任何问题,但客户端不会遇到任何问题。 谢谢

如何从Internet访问本地网络中的服务器

假设我有一个服务器应用程序,它在计算机上工作,没有直接连接到互联网,但是有路由器,所以问题是如何从不在内部网络(从互联网)内的另一台计算机连接到该服务器? 据我所知,管理员可以配置路由器将指定的端口请求重定向到该计算机,但我可以自动执行此操作吗? 我正在使用WCF和C#

即使我明确指定1.1,WCF自定义消息编码器也使用Soap1.2

我有一个自定义编码器连接到一个在水下使用TextMessageEncoding元素的customBinding。 我明确指出SOAP 1.1应该与WS Addressing 1.0一起使用。 正如我所说,我的自定义编码器在水下使用文本消息编码器; 编码器只是添加了一些调用我的服务的服务实现的标头。 当我在SOAPUI中添加生成的WSDL(使用SOAP 1.2,即使我在WS Addressing 1.0中指定了SOAP 1.1)并发送请求时,内容类型也不同,从而导致错误。 我认为这是因为WHILE生成WSDL,它使用Soap 1.2,但WHILE发送请求它尝试使用SOAP 1.1,即使使用SOAP 1.2发送消息。 有一些相关问题: 当我第一次使用 ,将WSDL添加到SOAPUI,然后将编码更改为我的自定义编码器并发送请求(这导致WSDL为Soap 1.1所以我想也许这将是一个非常hacky的解决方法),我得到以下错误: HTTP/1.1 415 Cannot process the message because the content type ‘text/xml;charset=UTF-8’ was not the expected type ‘text/xml; charset=utf-8’. 这里的问题是UTF-8是大写的,并且后面有空格; 。 我觉得这很奇怪,应该不是问题! 在Visual Studio中,自定义编码器有一条波浪线,表示The element ‘binding’ has invalid child element ‘MissingWSAddressingHeadersTextEncoding’. List of possible elements expected: […]

WCF从客户端向服务器发送int

我遇到了这个问题: 我有一个WCF服务,它公开了这个操作合同: [OperationContract] void Index(int[] song, string fileName); 在我的客户,我有: AudioDetectionServiceReference.AudioDetectionServiceClient client = new AudioDetectionServiceReference.AudioDetectionServiceClient(); client.Index(max.ToArray(), mp3Files[i]); 其中max是2000个int值的数组,而mp3Files [i]是一个200个字符的字符串。 Web.config有这个: app.config有: 现在是棘手的部分: 右键单击服务引用时,转到配置服务引用,有一个名为Collection type的选项。 如果我将集合类型设置为“Syste.Array”,我会收到错误 The remote server returned an unexpected response: (400) Bad Request. 使用堆栈跟踪: Server stack trace: at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding) at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) at System.ServiceModel.Channels.RequestChannel.Request(Message message, […]

WCF – 无法获取元数据

它使用IIS 7在Intranet中运行,只要我在IIS管理器中启用匿名身份validation,它就可以正常工作。 如果我禁用它并尝试使用wcftestclient运行它然后我收到以下错误, Error: Cannot obtain Metadata from http://myserver/testing/eval.svc If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error URI: http://myserver/testing/eval.svc Metadata contains a […]

加密WCF连接的其他方法

我目前正在开发一个需要在WCF主机之间传递加密数据的项目。 据我所知,只有两种方法可以确保通过WCF传递的数据是安全的。 使用证书 使用域(或在网络上的每台机器上使用相同的用户名和密码) 使用证书可能很昂贵且管理起来很复杂,因为我们无法保证在每次部署时都有一台服务器类机器,域名也是不可能的。 如果需要更改密码,则每台计算机使用相同的用户名和密码也会出现问题。 目前,我们使用OpenSSH来隧道连接主机之间的连接。 框架内置了另一个我不知道的选项吗?

双工通道故障事件在第二次连接尝试时不会上升

我有常规的net.tcp WCF服务客户端,以及常规的net.tcp 双工 (即带回调)WCF服务客户端。 我已经实现了一些逻辑,以便在服务出现故障的情况下不断重新实现连接。 它们以完全相同的方式创建: FooServiceClient Create() { var client = new FooServiceClient(ChannelBinding); client.Faulted += this.FaultedHandler; client.Ping(); // An empty service function to make sure connection is OK return client; } BarServiceClient Create() { var duplexClient = new BarServiceClient(new InstanceContext(this.barServiceCallback)); duplexClient.Faulted += this.FaultedHandler; duplexClient.Ping(); // An empty service function to make sure connection is […]

NetworkError:WCF中不允许405方法

我试图使用Jquery ajax调用调用WCF REST服务方法,并收到类似的错误 “NetworkError: 405 Method Not Allowed – http://localhost:55911/Service1.svc/Testing” 这是我的代码 $(document).ready(function () { $(“#Button2”).click(function () { var Input = { UserId: “11111” }; $.ajax({ type: “POST”, url: ” http://localhost:55911/Service1.svc/Testing”, data: JSON.stringify(Input), contentType: “application/json; charset=utf-8”, dataType: “json”, success: function (response) { alert(“Success”); }, error: function (xhr, status, error) { alert(“failure”); alert(stattus.toString); } }); }); }); […]

POX的WCF REST教程

谁能告诉我在哪里可以找到好的WCF REST教程? 使用(POX) 这个是好的,但我想使用一些更简单的东西 我似乎找不到任何体面的使用webget / webinvoke属性等… 我不想使用REST Starter工具包