Tag: #wcf

如何在WCF Rest Service中创建JSON以匹配/序列化为DataContract

接口: namespace SQRT_WCF { [DataContract] public class PlaceOrder { [DataMember] public string claimID { get; set; } [DataMember] public string rederenceDate { get; set; } } } 调用C#方法: public SQ_jsonModel.Response placeOrder(PlaceOrder argPlaceOrderJSON) { … } 我已将我的web服务附加到工作进程,并跟踪代码。 到目前为止,我尝试过的所有内容,变量argPlaceOrderJSON都为null。 我尝试过至少三种变化: 变化#1 { “claimID” : “value”, “rederenceDate” : “value” } 变化#2: { “PlaceOrder” : { “claimID” : “value”, […]

从WCF中的HTTP响应中删除服务器

我有一个在IIS 7.5上运行的Internet暴露的WCF服务,我需要保护它。 我想删除HTTP响应中的“服务器”标头。 我已经实现了一个IDispatchMessageInspector,代码如下。 public void BeforeSendReply(ref Message reply, object correlationState) { var context = WebOperationContext.Current; if (context != null) { context.OutgoingResponse.Headers.Remove( HttpResponseHeader.Server); } } 但是,Server标头仍在响应中。 在调试时,我可以看到OutgoingResponse.Headers不包含HttpResonseHead.Server ,如果我编写自己的值,它显然会被IIS管道中的某些内容所覆盖。 编辑1 尝试以下,也没有好处 public class SecureServerHeaderModule : IHttpModule { #region Implementation of IHttpModule public void Init(HttpApplication context) { context.PreSendRequestHeaders += OnPreSendRequestHeaders; } public void Dispose() { } #endregion […]

如何在web.config中添加xml?

我有一些复杂的数据用于xml格式的应用程序配置。 我想在web.config中保留这个xml字符串。 是否可以在web.config中添加一个大的xml字符串并在代码中获取它?

MessageSecurityException没有为具有“http:// …”操作的消息指定签名消息部分

这是客户端和服务器使用的配置文件 这是我得到错误的代码块。 ProgrammingMaster_ServiceClient aClient = new ProgrammingMaster_ServiceClient(); aClient.BeginProgrammingSession(0x01); aClient.Close(); 第二行是exception发生的地方。 使用svcutil.exe工具创建ProgrammingMaster_ServiceClient 。 这是我用来启动服务器的代码。 public bool StartService(string aIp) { string lsInstanceId = pFBlock.InstanceId.ToString(); Uri loBaseAddr = new Uri(string.Format(“http://localhost:808{0}/{1}”, lsInstanceId, pFBlock.FBlockName)); pLocalHost = new ServiceHost(typeof(Shadow_ProgrammingMasterService), loBaseAddr); Start(aIp); return IsHostOpen; } private void Start(string aIp) { Shadow_ProgrammingMasterService.SetAPI(this); try { pLocalHost.AddServiceEndpoint(typeof(IProgrammingMaster_Service), new WSHttpBinding(), “PM_Service”); ServiceMetadataBehavior loSmb = new ServiceMetadataBehavior(); […]

WCF服务返回400 Bad Request

我有这个应用程序在本地和部署时使用.mdf SQL Express数据库文件(我通常用于测试目的)。 但是,当我将其更改为与我们的SQL Server 2008一起使用时,应用程序可以正常工作,但服务却没有。 例如,如果在我的代码页面后面我有一个按钮,将数据添加到这样的表,它可以正常工作: public static string connString = @”Data Source=server1;Initial Catalog=Project;Integrated Security=True”; protected void btnAddProj_Click(object sender, EventArgs e) { using (var sqlc = new SqlConnection(connString)) { sqlc.Open(); var cmd = sqlc.CreateCommand(); int intProjectID; // Add the project info to the database cmd.CommandText = “INSERT INTO tblProject VALUES(@ProjName,@ProjTeam,@ProjStart,@ProjEnd)”; cmd.Parameters.Add(“ProjName”, System.Data.SqlDbType.NVarChar).Value = txtProjName.Text; […]

HTTP / 1.1 415无法处理消息,因为内容类型为’application / json; charset = utf-8’不是预期的类型’text / xml; 字符集= UTF-8′

尝试将json字典发布到C#WCF,当我调用它时HTTP响应415.有人可以告诉我我的代码有什么问题。 对象类 [DataContract] public class Class1 { [DataMember] public string AccNo; [DataMember] public string CompanyName; [DataMember] public string DocDate; } IService1.cs [OperationContract] [WebInvoke(Method = “POST”, UriTemplate = “json/PostSalesOrderData”, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)] string PostSalesOrderData(string data); Service1.svc.cs public string PostSalesOrderData(string data) { JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary dict = serializer.Deserialize<Dictionary>(data); […]

有没有办法让OWIN托管SOAP服务?

如何让OWIN托管SOAP端点(不管是否涉及WCF,SOAP都会提供WSDL,使得某些客户端更容易使用服务,这就是我想要SOAP和REST的原因) 我怀疑答案是:实现自己的托管SOAP端点的中间件。 如果这就是答案,那就是它,但这是很多工作,所以我可能最终会坚持使用WCF并避免OWIN,如果是这样的话。 我发现很难相信没有人实现过SOAP托管中间件…… 作为一项规则,我们喜欢在我们的服务上执行REST和SOAP端点; 目前我们使用IIS和WCF restful位来使用[ServiceContract] / [OperationContract]属性来托管SOAP,其余的是使用[WebInvoke]属性定义的,使用这些属性,服务不需要为不同的端点类型重新实现。 我们只是使用ASP.NET路由添加新的ServiceRoute ,它使用与绑定到URI / SOAP的SOAP相同的服务向URI / REST添加rest绑定。 现在我们正在寻找一些新的服务工作,我想继续使用OWIN,这样我们可以通过托管不可知论来实现我们的新服务,因为一些服务将更好地服务于Windows服务托管和一些更好的服务由IIS服务托管。 所有我都在摆弄东西,到目前为止,我无法获得由OWIN托管的SOAP端点。 通过使我的服务inheritance自ApiController ,然后在OWIN应用程序的Configuration方法中使用这一小段代码,我完成了其余的处理: public void Configuration(IAppBuilder app) { HttpConfiguration config = new HttpConfiguration(); config.MapHttpAttributeRoutes(); app.UseWebApi(config); […]

您可以发送到WCF服务的数据量是否有大小限制?

您可以发送到WCF服务的数据量是否有大小限制? 我发送一个对象数组,当数组达到一定的大小时,我得到一个404错误的请求exception。 这是httpHosting的限制吗? 另一种类型的托管会更好吗?

从类库转换为WCF需要采取哪些步骤?

我创建了一个项目作为类库。 现在我需要将它变成WCF。 我可以创建一个WCF项目,但我想避免与TFS一起大惊小怪。 我已经完成了App.config并将/client:”wcfTestClient.exe“行添加到了命令行参数中。 但是,它似乎还有其他东西在推出主机时缺失。

在Xamarin Cross Platform Application中使用WCF服务

我创建了一个WCF服务,它从SQL数据库中检索数据,并可以将数据更新和修改为SQL数据库。 我试图从xamarin for android和xamarin for iOS调用WCF方法。 我搜索了一个例子,如何从WCF服务调用PUT和POST方法,通过xamarin for android和xamarin for iOS但没有运气。 我在下面添加了WCF代码以供参考。 …甚至创建了Web API,但所有使用Web API的示例和教程都是关于如何调用GET方法的。 我没有看到任何参考文档,它将展示如何通过跨平台从WCF或Web api调用PUT或Post方法。 我通过Fiddler测试了WCF服务并且工作正常。 下一步将是什么..我已经使用xamarin文档中提到的SlsvcUtil.exe为此Web服务创建了代理。 有人发布了一个xamarin.Android的例子,它将从下面的wcf服务中调用Update或delete方法。正在寻找help.Service包含webHttp绑定。 WCF Service1.svc.cs using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; public class Service1 : IService1 { public List GetDeptsList() { using (DeptDBEntities entities = new DeptDBEntities()) { return entities.Depts.ToList(); […]