很抱歉这个问题很长...我花了两天时间调试并且有很多笔记......
我有一个WCF数据服务和另一个尝试通过TCP和/或HTTP作为客户端连接到它的进程.
我有一个非常简单的测试客户端应用程序似乎连接正常,但更复杂的生产应用程序无法连接(TCP或HTTP).在这两个客户端项目中,我让Visual Studio 2008使用"添加服务引用"生成app.config,并让它从数据服务中提取元数据.
以下是适用于简单测试客户端的代码:
using Client.MyDataService;
namespace Client
{
class Program
{
static void Main(string[] args)
{
MyDataServiceClient client = new MyDataServiceClient("net.tcp");
client.GetRecords();
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下是更复杂的生产客户端的代码:
DataServiceManager.cs:
using MyServer.MyDataService;
namespace MyServer.DataServiceBridge
{
class DataServiceManager
{
MyDataServiceClient dataServiceClient = new MyDataServiceClient("net.tcp");
}
}
Run Code Online (Sandbox Code Playgroud)
在主要过程中:
DataServiceManager d = new DataServiceManager();
Run Code Online (Sandbox Code Playgroud)
这是简单客户端和生产客户端的app.config文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="net.tcp" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false"
transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="10"
maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
maxReceivedMessageSize="65536">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" …Run Code Online (Sandbox Code Playgroud) 好吧,这个问题有点惹恼了.我现在正在做这样的事情:
using (var session = _sessionFactory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
Car newCar = new Car();
newCar.name = "Jeep";
session.Save(newCar);
transaction.Commit();
}
}
Run Code Online (Sandbox Code Playgroud) 是否有一种简单的方法可以在不使用位字段的情况下读取/写入字节中的半字节?我总是需要读两个半字节,但需要单独写每个半字节.
谢谢!