Tag: #wcf

DataContractJsonSerializer的反序列化问题

我有以下JSON: [{ “name”: “numToRetrieve”, “value”: “3”, “label”: “Number of items to retrieve:”, “items”: { “1”: “1”, “3”: “3”, “5”: “5” }, “rules”: { “range”: “1-2” } }, { “name”: “showFoo”, “value”: “on”, “label”: “Show foo?” }, { “name”: “title”, “value”: “Foo”, “label”: “Foo:” }] 所有在一个行版本(适用于字符串文字): [{\”name\”:\”numToRetrieve\”,\”value\”:\”3\”,\”label\”:\”Number of items to retrieve:\”,\”items\”:{\”1\”:\”1\”,\”3\”:\”3\”,\”5\”:\”5\”},\”rules\”:{\”range\”:\”1-2\”}},{\”name\”:\”showFoo\”,\”value\”:\”on\”,\”label\”:\”Show foo?\”},{\”name\”:\”title\”,\”value\”:\”Foo\”,\”label\”:\”Foo:\”}] 在上面的示例中, name , value和label是必需的,但items和rules是可选的。 […]

WebGet的WCF ResponseFormat

WCF在ServiceContract中的WebGet批注中为ResponseFormat属性提供了两个选项。 [ServiceContract] public interface IService1 { [OperationContract] [WebGet(UriTemplate = “greet/{value}”, BodyStyle = WebMessageBodyStyle.Bare)] string GetData(string value); [OperationContract] [WebGet(UriTemplate = “foo”, BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)] string Foo(); ResponseFormat的选项是WebMessageFormat.Json和WebMessageFormat.Xml。 是否可以编写自己的网络消息格式? 我希望当客户端调用foo()方法时,他会获得原始字符串 – 没有json或xml包装器。

找不到与scheme net.tcp匹配的基址

当我尝试设置双工模式通道时,我已将文件传输服务从basicHttpBinding移动到netTcpBinding。 我还启动了net.tcp端口共享服务。 我目前在dev并且在xp框上自我托管,直到我们将应用程序移动到开发服务器。 所以,就目前而言,我无法访问IIS。 在配置我的服务之后: 而且,我的约束如下: 当我正确浏览到SVC文件时,我得到了以下错误: 无法找到与绑定NetTcpBinding的端点匹配scheme net.tcp的基址。 注册的基地址方案是[http]。 在线阅读表明,为了解决这个问题,我需要将net.tcp绑定添加到IIS中应用程序的绑定。 但是,如果我是自托管并且无法访问IIS,我该怎么办? 顺便说一句,如果您正在阅读此内容并“执行”拥有IIS,请执行以下操作:右键单击IIS中的虚拟目录/应用程序 – >管理应用程序 – >高级设置。 并且,在Enabled Protocols部分中,添加net.tcp。 有任何想法吗? 更新:我以为我有它工作,但它仍然没有工作。 这是我现在拥有的:我仍然得到“找不到与scheme net.tcp匹配的基地址”错误。 我已经更改了所有基地址以反映您的建议。 这就是我现在拥有的: 我用“net.tcp:// localhost:2544”和“net.tcp:// localhost:8001”尝试了这个。 我是否需要在防火墙设置中添加(允许)某些内容? 还有其他建议吗? 这是我的App.config文件中的filetransferservice的mexTcpBinding: 我仍然无法在我的网络应用程序中引用我的FileTransferServiceClient。 再次感谢。

WCF:将Nonce添加到UsernameToken

我正在尝试连接到用Java编写的Web服务,但有些东西我无法弄清楚。 使用WCF和customBinding,几乎所有内容似乎都很好,除了SOAP消息的一部分,因为它缺少Nonce和Created部分节点。 显然我错过了一些东西,所以如果你能指出我正确的方向,那就非常感激了。 这是自定义绑定: 这是消息的相关部分: 这就是它的外观: .. .. 6ApOnLn5Aq9KSH46pzzcZA== 2009-05-13T18:59:23.309Z 所以问题是:我如何在安全部分中引入Nonce和Created元素?

WCF REST服务中的CORS支持

我在Windows服务中托管了WCF REST服务,并且我希望每次响应都发送Access-Control-Allow-Origin HTTP标头(定义为CORS的一部分)。 我尝试的解决方案是在IDispatchMessageInspector实现中使用以下内容: public void BeforeSendReply(ref Message reply, object correlationState) { var httpResponse = reply.Properties[“httpResponse”] as HttpResponseMessageProperty; if (httpResponse != null) { // test of CORS httpResponse.Headers[“Access-Control-Allow-Origin”] = “*”; } } 通常这会起作用,但不幸的是我的服务也使用HTTP基本授权 ,这意味着当请求进入而没有Authorization标头时,WCF会自动发送401响应,要求提供凭据。 遗憾的是,在此初始交换期间,WCF不会调用我的IDispatchMessageInspector,因此Access-Control-Allow-Origin标头不会添加到初始交换中。 当我尝试从浏览器调用服务时,会出现此问题。 CORS指定仅当源域与Access-Control-Allow-Origin响应头中列出的域匹配时才允许跨源请求(*匹配所有域)。 不幸的是,当浏览器看到没有Access-Control-Allow-Origin标头的初始401响应时,它会阻止访问(根据相同的源策略 )。 有没有办法在WCF自动发送的初始401响应中添加标头?

使用WS-Security UsernameToken PasswordDigest身份validation方案的WCF客户端使用Axis 2 Web服务时出错

我有一个WCF客户端连接到基于Java的Axis2 Web服务(在我的控制之外)。 它即将应用WS-Security,我需要修复.NET客户端。 但是,我正在努力提供正确的身份validation。 我知道WSE 3.0可能会让它变得更容易,但我宁愿不再使用过时的技术。 类似的问题(未解决),包括这个 , 这个和这个 。 SOAP消息应如下所示: 2010-05-28T12:50:33.675+01:00 但是,我的看起来像这样: 2010-06-23T10:31:23.441Z 2010-06-23T10:36:23.441Z 我的客户端看起来像这样:PS注意所需的 SecurityHeaderType参数。 那是什么? public MyAck SendRequest(MyRequest request) { RemoteServicePortTypeClient client = new RemoteServicePortTypeClient(); client.ClientCredentials.UserName.UserName = “JAY”; client.ClientCredentials.UserName.Password = “AND”; // what is the difference between the two different Credential types?? //client.ClientCredentials.HttpDigest.ClientCredential.UserName = “SILENT”; //client.ClientCredentials.HttpDigest.ClientCredential.Password = “BOB”; SecurityHeaderType sht = new […]

dependency injectionwcf

我想在WCF中注入我的接口的实现,但我想在WCF的客户端初始化我的容器的dependency injection。 所以我可以为我的服务的每个客户端提供不同的实现。

让POST端点在自托管(WebServiceHost)C#webservice中工作?

所以,我一直在搞乱webservices一段时间,我不断回到一些基础知识,我似乎永远不会对。 问题1: 在.NET / C#中使用WebServiceHost时,可以使用GET / POST / etc定义方法/端点。 设置GET方法很简单,它可以直接工作,并且很容易理解它是如何工作的。 例如: [OperationContract] [WebInvoke(Method = “GET”, UriTemplate = “/PutMessage/{jsonString}”, BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)] string PutMessage(string jsonString); 如果我调用http:/// MyWebService / PutMessage / {MyJsonString},我会传递该方法,并且一切都很好(或多或少)。 但是,当我将其定义为POST时,这意味着什么呢? [OperationContract] [WebInvoke(Method = “POST”, UriTemplate = “/PutMessage/{jsonString}”, BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)] string PutMessage(string […]

如何通过WCF处理大文件上传?

我正在考虑将WCF用于一个项目,该项目需要人们将大文件(64MB-1GB)上传到我的服务器。 如何使用WCF处理此问题,可能还有恢复上传的function。 为了处理更大的客户群,我想通过WCF测试JSON。 这会如何影响文件上传? 可以从JSON完成,还是需要切换到REST上传部分?

如何为现有的WCF服务本机启用JSONP?

我有一个像以下方法的现有服务: [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] [ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)] public class SomeService : ISomething { public SomeListResults SomeList(SomeParams someParams) { …. } } 是否有一种简单的方法可以同时允许JSONP调用和JSON(检测它)。 这是原生的吗?