Tag: #wcf

并非WCF数据协定中的所有参数都通过Web服务调用

在创建WCF Rest服务时,我注意到我的Web服务中的所有参数都没有进入我的实现。 这是界面: [ServiceContract(Namespace=”http://example.com/recordservice”)] public interface IBosleySchedulingServiceImpl { [OperationContract] [WebInvoke(UriTemplate = “Record/Create”, RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare, Method = “POST”)] string CreateRecord(Record record); } [DataContract(Namespace=”http://example.com/recordservice”)] public class Appointment { [DataMember] public int ResponseType { get; set; } [DataMember] public int ServiceType { get; set; } [DataMember] public string ContactId { get; […]

WCF请求/响应包大小

我想知道是否有可配置的设置限制WCF的最大请求/ respose数据包大小? 我正在使用VSTS 2008 + WCF 3.5。 我是一个Windows服务的自主WCF服务。 乔治,提前谢谢

使用.NET中的WS安全性调用Web服务

我需要使用ASP.NET中的WS-Security保护的Web服务。 我正在使用SoapUI测试服务,作为信封请求: ? ? ? ? ? 我得到的回应是: env:Server org.jboss.ws.core.CommonSOAPFaultException: This service requires <wsse:Security>, which is missing. 所以我联系了服务提供商,他们告诉我,必须使用WS-Security来调用服务。 因此,发送到服务器的SOAP消息必须使用我的证书进行数字签名。 问题是我不知道该怎么做。 到目前为止,我添加了一个服务参考,我在代码中传递了提到的证书: var srvRef = new DnaSoapClient(); srvRef.ClientCredentials.ClientCertificate.Certificate = theCert; var response = srvRef.agregarManifiesto( dnaManifiesto ); 我google了一些,有些人推荐WCF。 我正在构建一个ASP.NET 4.5应用程序。 这个场景有什么选择? 我需要知道如何使用我的证书签署邮件。 编辑1:我能够推进这个问题,现在我可以发送用证书签名的SOAP消息,我即将结束我的任务。 现在我无法在安全标签中设置正确的元素,我编辑了问题以显示信封,正确的信封和我的信封。 正确:这是正确请求的样本信封 MIIC9TCCAd2gAwIBAgIIUiM4nWs8kfcwDQYJKoZIhvcNAQEFBQAwNzERMA8GA1UEAwwIQWRtaW5DQTExFTATBgNVBAoMDEVKQkNBIFNhbXBsZTELMAkGA1UEBhMCU0UwHhcNMTQwMzIwMTkxMTIwWhcNMTgxMjIwMTQzNzEzWjBBMRQwEgYDVQQDDAtjb3VyaWVyLnRudDEOMAwGA1UECwwFc29maWExDDAKBgNVBAoMA2RuYTELMAkGA1UEBhMCcHkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOS71x5+ChwGzWs4VlLgkePbU8/zFHUrrE8nFNVsukMCc5q5hCK8/CeNM+mxImilLdJrGoC2/000lQetB9B3AqIrAdOfBFU4/qsAlgWI+kt2jnUsJMLRjQfxhAKMeX4RUb0CmTcsnXtWlFvYFFjiUi9nUJVSxCsmldVFgLIAHRPjAgMBAAGjfzB9MB0GA1UdDgQWBBTCwBBmU7f/4SmNz7GNJ25ILkPuhjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFDF+1hOSdgg2DFOUofnnXdx9TxjeMA4GA1UdDwEB/wQEAwIE8DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADggEBAALVVGGNsTSMcfDBwkkNQH3MpfiNTo/mhH8ahqUVN1+5BIwWstv8fH0Sl9ea1XShKLPDfDIx8WSzUUIt/93f74B3a3oMpBtbVEiku2BKUp5cJfkYe2c5zPOxk3nzmQwcEoB++RgX9DJOtUkKA/It2IM9/8ggUyjceJQCpBRiA9Kg7+h3HfmOKNn+9/pNu498JXhSRKa8Jr4pp/1udYRk+W8sKGEBtAU9MvL3y0AbvLhUD+MZyvpHGB17fslC8Nnd5EBQH8hQD+DWGepyCBIlb0NA13YEoLMcRKDcWvSPd0UGWo2G0IOeUZaGuzzIz2n04QrXvnqQKAOFd9yH2VfGtWE= whvAdAkypsWVXHXbIz/T54n0dBw= MdHy5mceNtQWUD5WmVOzZU8roxD3EQkQmcZA9LsfhBcp3cFAD3P1qJJ9EyrRFBs5yCiYDY716Wzh M+tFybt1+EujXZZ3ytk4XaahkexNAG51iup1wvw0Km+nsj4u/x8DzTA/J9EG3ZdTSUrIVBsFcEQa TF4BwUAgGBS87xqL5zc= 2014-05-13T19:06:00.188Z 2014-05-13T19:07:00.188Z 我的,这不行 uIDPowmum40QT95GqsY7XPKT7LIAAAAAvMwgorinWU+AVOWH+3TPjP6NBU03AZtHqle8GLRYcYAACQAA 2014-05-15T21:30:20.723Z 2014-05-15T21:35:20.723Z MIIC9jCCAd6gAwIBAgIINNZyZplkQHgwDQYJKoZIhvcNAQEFBQAwNzERMA8GA1UEAwwIQWRtaW5DQTExFTATBgNVBAoMDEVKQkNBIFNhbXBsZTELMAkGA1UEBhMCU0UwHhcNMTQwMzIwMTgzMjQ3WhcNMTgxMjIwMTQzNzEzWjBCMRUwEwYDVQQDDAxjb3Vycmllci5kaGwxDDAKBgNVBAsMA09QUzEOMAwGA1UECgwFREhMUFkxCzAJBgNVBAYTAlBZMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGoP0dxByIfto/hqJCOhobTdwQJ3AxJkqUeSNFnprAH8zi6HjBJhzkXptqXiR9GZR1H4U3UaN6aczKVh2PaPqU8ooTxjST0ywWBgXA1WP3ukrybUKxpSvqmiRJ/cANAYLovL+gmh2v/fqPiLs7vsgT+zj1330wRGqtrokYPMjlbQIDAQABo38wfTAdBgNVHQ4EFgQU6IHB4XfP7+rbryy1Ru8kFcfSDqcwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBQxftYTknYINgxTlKH5513cfU8Y3jAOBgNVHQ8BAf8EBAMCBPAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4IBAQB3NQC+0/VmC7A1MStKdc2NctTo7P+mhvIBe54U/Vs8I5vXiatKz01BzHIbl7chjP063V4YTtehDCGkwUTtARqpkua7RfdlMqsmcr1s3qnD4lUpGuAeVW0Wsrhu1xGjPf02fTBdD3yyGWCeUiNvKuoweeATlGyB/VlHJaZHN4HuJCnWlPic6uUUMBYqrOOa+wJr/OCFHqkEiBsUihD6ergj7AeAAFcG41GI2ZjVWK/PEB71sbQqqGgLpigAS9f8PNMm+TnQuizrvLPKm3hanOKYr9ORrbWjZCL3dva1YobK4ykvUYpncj6YsOtuDi62RcHYjT7IF9UoeZHBE2vePc+K […]

WCF – 读取XML数据时已超出最大名称字符数量限额(16384)

我有一个使用wsHttpBinding的WCF服务。 服务器配置如下: 在客户端,我包括WCF服务的服务参考。 如果我的function有限,在我的IService中说90操作合同但是如果再添加一个OperationContract而不是我无法更新服务引用,我也能添加该服务引用。 在本文中提到通过更改这些配置文件(即devenv.exe.config,WcfTestClient.exe.config和SvcUtil.exe.config)它可以工作,但即使包括那些配置文件中的那些绑定仍然会弹出错误说 下载’ http://10.0.3.112/MyService/Service1.svc/mex ‘时出错。 请求失败,HTTP状态为400:错误请求。 元数据包含无法解析的引用:’ http : //10.0.3.112/MyService/Service1.svc/mex ‘。 XML文档中存在错误(1,89549)。 读取XML数据时已超出最大名称字符计数限额(16384)。 nametable是用于存储XML处理期间遇到的字符串的数据结构 – 具有非重复元素名称,属性名称和属性值的长XML文档可能会触发此配额。 通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象上的MaxNameTableCharCount属性,可以增加此配额。 第1行,位置89549.如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。 不知道怎么解决这个????

使用NetTcpBinding的WCF服务库

我在使用NetTcpBinding时遇到了困难。 当我运行我的WCF服务时,我得到了这个: System.InvalidOperationException: Could not find a base address that matches scheme net.tcp for the endpoint with binding NetTcpBinding. Registered base address schemes are [http]. at System.ServiceModel.ServiceHostBase.MakeAbsoluteUri(Uri relativeOrAbsoluteUri, Binding binding, UriSchemeKeyedCollection baseAddresses) at System.ServiceModel.Description.ConfigLoader.LoadServiceDescription(ServiceHostBase host, ServiceDescription description, ServiceElement serviceElement, Action`1 addBaseAddress) at System.ServiceModel.ServiceHostBase.LoadConfigurationSectionInternal(ConfigLoader configLoader, ServiceDescription description, ServiceElement serviceSection) at System.ServiceModel.ServiceHostBase.LoadConfigurationSectionInternal(ConfigLoader configLoader, ServiceDescription description, String configurationName) […]

如何将带有循环引用的对象结构序列化为Json?

我有一个像这样的对象结构: public class Proposal { public List Lines { get; set; } public string Title { get; set; } } public class ProposalLine { public Proposal Proposal { get; set; } // <- Reference to parent object } 我尝试将Proposal序列化为Json,它告诉我有一个循环引用,这是正确的。 不幸的是,我无法触摸对象,因为它们位于另一个项目的引用DLL中 – 否则我会更改它们。 有没有办法序列化为Json并忽略圆形属性?

WCF没有正确定时?

我有超时问题,这些是详细信息: 我的绑定配置如下所示: 我正在向服务器发送一条消息,我知道该服务器已关闭,因此连接应该在我的app.config中规定的3秒后超时,但由于某种原因它需要20-30秒。 抛出EndPointNotFoundException时,这是我得到的信息: System.ServiceModel.EndPointNotFoundException:无法连接到net.tcp://10.0.0.82:4466 / MegaMatcherWcf。 连接尝试持续时间跨度为00:00:03。 TCP错误代码10060:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应10.0.0.82:4466 如果我在打开机器时尝试相同的测试,但没有正在运行的监听软件,我会得到预期的行为,3秒后连接超时。 为什么机器关闭需要30秒,然后告诉我需要3秒钟?

如何从客户端请求获取X509Certificate

我有一个使用证书保护的网络服务。 现在,我想通过查看证书指纹来识别客户端。 这意味着我的服务上有一些指纹列表,这些指纹链接到某个用户。 实际上,我的第一个问题(有点偏离主题)是:这是一个好方法还是我还应该引入一些用户名密码构造? 第二个问题是:我如何获得客户端用于连接到Web服务的证书,以便我可以在服务端读取指纹。 我确实读了很多关于它的内容(比如这篇文章: 如何从Web服务中的客户端发送X509Certificate? )但找不到答案。 我没有HTTPContext,所以这不是一个选项。 在上面提到的post中提到了Context.Request.ClientCertificate.Certificate但我想它们也意味着HTTPContext 。 另外,将到web.config也不是一个选项。

以编程方式修改端点ReaderQuotas

我有一个服务的动态客户端。 如何更改其端点绑定的ReaderQuotas属性? 我试过这样但它不起作用…… DynamicProxyFactory factory = new DynamicProxyFactory(m_serviceWsdlUri); foreach (ServiceEndpoint endpoint in factory.Endpoints) { Binding binding = endpoint.Binding; binding.GetProperty(new BindingParameterCollection()).MaxArrayLength = 2147483647 binding.GetProperty(new BindingParameterCollection()).MaxBytesPerRead =2147483647; binding.GetProperty(new BindingParameterCollection()).MaxDepth = 2147483647; binding.GetProperty(new BindingParameterCollection()).MaxNameTableCharCount = 2147483647; binding.GetProperty(new BindingParameterCollection()).MaxStringContentLength = 2147483647; } 即使这样做,ReaderQuotas值仍然是默认值。 我也尝试过这样但仍然不起作用: DynamicProxyFactory factory = new DynamicProxyFactory(m_serviceWsdlUri); foreach (ServiceEndpoint endpoint in factory.Endpoints) { System.ServiceModel.Channels.BindingElementCollection bec = endpoint.Binding.CreateBindingElements(); […]

帮助:如何在ASP.NET Development Server上启用Windows身份validation?

我希望你们中的任何人都知道如何解决我们遇到的这个问题。 我们正在尝试通过网络托管WCF服务。 我们设置web.config以使服务需要Windows身份validation。 我们遇到的问题如下: 当我们在常规IIS中托管我们的服务时,该服务运行正常,并且“Windows身份validation”模式没有问题。 但是,当我们尝试从我们的开发人员框中运行它时,我们会收到以下错误:“此服务的安全设置需要Windows身份validation,但不支持承载此服务的IIS应用程序。” 我们的开发人员盒子不是通过常规IIS托管服务,而是通过Visual Studio的APS.NET开发服务器托管服务。 我们尝试进入Web项目属性并说要启用NTLM身份validation,但仍然没有修复它。 有谁知道如何修理它? VS ASP.NET开发服务器甚至支持Windows身份validation吗? 使用Windows身份validation托管服务的唯一选择是使用IIS而忘记ASP.NET Development Server吗? 谢谢查克