我需要有一个javascript,它将对象作为json发送到WCF服务以保存它.我有javascript:
<script>
$(document).ready(function(){
$("#submitButton").click(function() {
console.info("executing submitButton click");
TestJSon();
);
});
</script>
<button type="button" id="submitButton">Save</button>
<script>
var varType;
var varUrl;
var varData;
var varContentType;
var varDataType;
var varProcessData;
//Generic function to call AXMX/WCF Service
function CallService()
{
console.log('called CallService')
$.ajax({
type : varType, //GET or POST or PUT or DELETE verb
url : varUrl, // Location of the service
data : varData, //Data sent to server
contentType : varContentType, // content type sent to server
dataType : varDataType, //Expected data …Run Code Online (Sandbox Code Playgroud)
我打算学习windows azure应用程序和WCF服务的开发.
是否有任何的学习结构(学科内容描述)遵循/参考,使我们可以学习的主体有效地
在此先感谢
我正在使用.net 4.0和wcf服务.我有业务实体类,没有使用[Datacontract]属性定义.
当我尝试检索少于1000个类型的业务实体类的记录时,它工作正常,但是当我尝试检索超过1000个类型的业务实体类的记录时,它会抛出此异常:
格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数http://tempuri.org/:Securities时出错 .InnerException消息是'对象图中可以序列化或反序列化的最大项数是'65536'.更改对象图或增加MaxItemsInObjectGraph配额.".有关更多详细信息,请参阅InnerException.
当使用[DataContract]为业务实体类定义的属性时,问题得到了解决.
[DataContract]属性在上述情况下有多重要?[DataContract]attribute 定义的业务实体类和不使用[DataContract]属性有什么区别?其中一个服务合同将一个Huge传递DataSet给客户.我正在使用BufferedTranfer模式.
在极少数情况下,我有更多的数据要发送,因为这个原因我很困惑将TransportMode更改为Streamed.
这是"DataSet"通过传输数据使用的良好做法NetTcpBinding 吗?
任何替代品DataSets?
我有一个winform应用程序,可以处理一些数据输入和计费.我想添加一个只能通过本地LAN访问的WCF服务.我希望我的计费程序可以查询我的数据库并为客户端获取一些数据.重要的是,这可以在-same-程序中完成,而不是创建另一个程序.
我的问题是很难设置这样的WCF服务,我从现有的winform应用程序开始,而不是创建一个新的WCF服务.这是一个简单的问题,正确的使用指令或从根本上缺少其他东西,因为我没有把它设置为一个WCF服务从一开始?
另一个问题是我需要担心线程还是由WCF服务自动处理?例如,如果10台计算机同时查询我的winforms应用程序,WCF将无缝地处理该问题,或者我是否需要实现其他功能来处理这个问题?
谢谢阅读
我正在编写一个使用WCF的应用程序,以便与Web服务进行通信.数据库还用于存储与用户相关的数据,例如凭证.数据库中的密码是散列+盐渍的.
用户必须使用提供给他的用户名和密码手动登录.然后,应用程序使用代理与负责身份验证的Web服务进行通信.然后,Web Service检查用户是否存在并将数据返回给客户端,然后客户端显示数据.否则,如果凭据无效或服务器无法访问,则会显示错误.
我的问题:
为了减少Web服务所做的工作量,我希望客户端完成身份验证过程.换句话说,客户端向Web服务发送用户名,然后Web服务检查数据库中是否存在"用户"表中存在该用户名的条目.如果是,则Web Service将散列和加密的密码(从DB)返回给客户端.然后,客户端将用户输入的密码与获得的散列/盐渍密码进行比较.没有解密,输入的密码只是使用相同的salt字节和密码进行哈希处理.
这是可接受的行为吗?
如果在数据库中找不到提供的用户名,我该怎么办?服务器是否应抛出异常,然后由客户端处理?或者我应该分两步划分身份验证部分:
1)确保用户存在.
2)从DB中获取加密密码.
然后,第一步将返回某个值,客户端将其理解为"用户不存在"(例如:布尔值"False").
我有一个客户端应用程序,使用net.pipe协议托管WCF服务.客户端无法与在admin用户下运行的其他WCF服务进行通信.
我已经读过你不能在不同用户之间使用net.pipe进行通信.
有没有办法通过它?
我喜欢SlowCheetah的原因,但是在我的app.config中使用它来转换端点时遇到了一些问题.我希望也许有人可以看一看,看看我错过了什么,或者过去曾经遇到过这个问题.
app.config默认
<connectionStrings>
<add name="MyEntities" connectionString="metadata=res://*/RFPModel.csdl|res://*/RFPModel.ssdl|res://*/RFPModel.msl;provider=System.Data.SqlClient;provider connection string="data source=developmentServer;initial catalog=databaseName;integrated security=True;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IMasterEngineService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://DevelopmentServer/WebServices/MasterEngine/MasterEngineService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMasterEngineService" contract="OverlayFarEnd.IMasterEngineService" name="BasicHttpBinding_IMasterEngineService" />
</client>
</system.serviceModel>
</configuration>
Run Code Online (Sandbox Code Playgroud)
Release for Release是:
<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations …Run Code Online (Sandbox Code Playgroud) 我需要将一个存在的 DI容器作为参数传递给WCF服务构造函数为了做到这一点,我正在使用IInstanceProvider WCF服务应该托管在自托管中.
public class CustomInstanceProvider : IInstanceProvider, IContractBehavior
{
private readonly IUnityContainer UnityContainer;
public CustomInstanceProvider(IUnityContainer unityContainer)
{
if (unityContainer == null)
{
throw new ArgumentNullException("unityContainer");
}
UnityContainer = unityContainer;
}
#region Implementation of IInstanceProvider
public object GetInstance(InstanceContext instanceContext)
{
return new Service(UnityContainer);
}
public object GetInstance(InstanceContext instanceContext, Message message)
{
return this.GetInstance(instanceContext);
}
public void ReleaseInstance(InstanceContext instanceContext, object instance)
{
}
#endregion
#region Implementation of IContractBehavior
public void Validate(ContractDescription contractDescription, ServiceEndpoint endpoint)
{
}
public void ApplyDispatchBehavior(ContractDescription contractDescription, …Run Code Online (Sandbox Code Playgroud) 在我的界面中,我将有很多功能.所有这些都将绑定为OperationContract.
有没有办法避免在这些函数中的每一个上键入[OperationContract]?
[ServiceContract]
public interface IStudentService
{
[OperationContract]
String GetStudentFullName (int studentId);
[OperationContract]
StudentInformation GetStudentInfo (int studentId);
... about 20 more
}
Run Code Online (Sandbox Code Playgroud) wcf ×10
c# ×5
.net ×3
app-config ×1
azure ×1
buffer ×1
c#-4.0 ×1
dataset ×1
javascript ×1
json ×1
lan ×1
named-pipes ×1
self-hosting ×1
service ×1
slowcheetah ×1