Tag: #wcf

DataContractSerializer是一个选择性序列化器。 如何让它退出?

我inheritance了一些具有大量属性的类。 我希望能够为WCF序列化它们。 由于DataContractSerializer是一个选择性序列化器,我需要使用DataMember属性来装饰所有属性,这在我看来有点麻烦。 我没有任何其他方法,所以我不必将DataMember添加到所有属性? 请注意,我的大部分属性都需要序列化。

WCF REST未异步处理

我们目前正在IIS中为我们的站点实现一个新的WCF REST服务,在许多页面上,我们可能会异步使用JQuery进行一些AJAX调用。 问题是似乎WCF(在服务器端)同步执行。 在页面加载时,我们对3种不同的方法进行3次单独调用。 使用日志记录,我可以看到它们都在大约5ms内相互访问global.asax文件。 从那里,日志记录显示按退出global.asax的顺序执行的所有操作(不一定是我们通过javascript从页面调用的顺序)。 我希望每次调用都能收到自己的线程并单独返回。 即使使用调试器附加,我也可以看到它不会执行下一个方法,直到我逐步执行当前方法。 以下是我为实现使用异步模型而实现的三种方法的操作合同。 [OperationContract(AsyncPattern = true)] [WebInvoke( Method = “POST” , UriTemplate = “/ListUserPreferences” , BodyStyle = WebMessageBodyStyle.Wrapped , ResponseFormat = WebMessageFormat.Json , RequestFormat = WebMessageFormat.Json )] IAsyncResult BeginListUserPreferences(AsyncCallback callback, object state); Result<List<Data.EnumerationItem>> EndListUserPreferences(IAsyncResult asyncResult); [OperationContract(Name = “GetUserSecure”, AsyncPattern = true)] [WebInvoke( Method = “POST” , UriTemplate = “/GetUser” […]

WCF通信exception

接收到http://production/Services/AccountService.svc的HTTP响应时发生错误。 这可能是由于服务端点绑定不使用HTTP协议。 这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭)。 请参阅服务器日志以获取更多详 这个例外的原因是什么? 我在我的ASP.NET站点web.config文件中启用了exception详细信息,我在其中托管WCF服务。 我有第二个服务,仅用于测试目的,只返回一个完美无缺的int。 此外,在开发中,意味着消费和服务应用程序都在同一台本地计算机上,两种服务都有效。 这使得测试这个错误更加困难:( 关于如何在这种特殊情况下进行调试的任何建议?

“OperationContext.Current.GetCallbackChannel”实际上做了什么?

OperationContext.Current.GetCallbackChannel实际上做了什么? 它如何识别每个客户? 我在WCF服务中遇到问题。 如果有两个以上的用户连接到该服务,那么我从服务发送到客户端的所有“有趣的更改”将转到第二个加入的用户。 例如,如果我通过回调将更改发送到C和D,则A,B,C,D加入服务,它将转到B. 有任何想法吗? 细节 : 客户端:ASP.NET Web应用程序 绑定:netTCPBinding UPDATE1 好的,我找到了问题的原因。 我在IIS中托管了asp.net客户端。 例如,客户端的URL是http:// url1 。 如果我在不同的机器中打开页面的多个实例并加入服务,则回调通道始终指向页面的第一个实例(我从不同的机器打开该站点)。 但如果我在IIS中的不同站点下托管asp.net客户端,则回调通道是唯一的。 有什么想法吗?

C#ADAL AcquireTokenAsync()没有弹出框

我们正在编写一个WCF服务,该服务必须与Dynamics CRM 2016 Online集成。 我正在尝试使用方法AcquireTokenAsync()使用ADAL进行身份validation。 问题是,它会显示一个弹出框,提示用户输入凭据。 当然,我们的应用程序是一项服务,这不是我们想要的。 我们一直在寻找一种无需此弹出框即可进行身份validation的方法。 有一个名为AuthenticationContextIntegratedAuthExtensions的类,它应该有助于“用户名/密码流”。 它有单个方法AcquireTokenAsync ,它会禁止弹出框,但我们没有找到任何方法将密码传递给它。 当仅使用用户名运行时,它会引发基本上说“没有提供密码”的exception。 有谁知道如何解决这个问题? 甚至不必是ADAL。 只是获取OAuth令牌的东西。

什么线程在silverlight WCF调用上调用已完成的事件处理程序?

假设我有Silverlight应用程序调用WCF服务: void DoStuff() { MyProxy proxy = new MyProxy(); proxy.DoStuffCompleted += DoStuffCompleted; proxy.DoStuffAsync(); } void DoStuffCompleted(object sender, DoStuffCompletedEventArgs e) { // Handle the result. } UI线程调用DoStuff 。 什么线程最终会调用DoStuffCompleted方法? 如果我同时调用两个异步调用,是否有可能在不同的线程上同时触发两个已完成的事件?

WCF,从服务访问Windows窗体控件

我有一个托管在Windows窗体中的WCF服务。 如何从我的服务中的方法访问表单的控件? 比如我有 public interface IService { [ServiceContract] string PrintMessage(string message); } public class Service: IService { public string PrintMessage(string message) { //How do I access the forms controls from here? FormTextBox.Text = message; } }

尝试访问WCF服务时出现最新的MonoTouch 4.0问题

我的MonoTouch应用程序使用带有HttpTransportBinding和TextMessageEncodingBinding CustomBinding调用SOAP WCF服务,并且MonoTouch版本3.2.6的一切正常。 我正在更新我的系统以使用MonoTouch版本4.0.0,并且对我的SOAP WCF服务的调用不再有效。 我一直得到System.Net.WebException “The remote server returned an error: 400 Bad Request”; 是什么导致了这个问题,我该如何解决? 如果我再次重新安装MonoTouch版本3.2.6,那么我的应用程序可以正常工作,但是一旦我更新到MonoTouch 4.0,我就会遇到同样的问题。

为什么会使用ChannelFactory来实例化WCF代理而不是服务引用?

似乎有两种方法可以实例化此处描述的WCF服务代理。 我的问题是为什么要使用ChannelFactory来实例化WCF代理,这种方法有什么好处? 我遇到了对第二种选择有强烈意见的人,但我无法理解他们的明确论证

SOA中补偿缺乏inheritance的模式

我发现基类的inheritance和概念是OOP的最强点。 但是在SOA中并不鼓励这样做。 那么,在SOA中克服这种限制的流行模式是什么? 能否请您提供解释这些模式的教程(在WCF中使用代码演示)? 注意:这不是关于SOA中可用模式的一般问题。 但它更具体到上述问题。 注意:我正在使用WCF进行SOA。 读: “不要在Design中使用Abstract Base类; 但在建模/分析中“ 如何真正实现SOA架构? 如何在面向服务的体系结构中处理Java多态性 如何加快SOA的速度? 什么是面向服务的架构? DDD和SOA真的能很好地协同工作吗? SOA和WCF设计问题:这是一个不寻常的系统设计吗? 设计WCF数据合同和操作 C#4.0中的Expando对象