牛人们帮帮小弟吧

「已注销」 2012-03-20 12:05:36
Windowsservice和socket的问题,socket在控制台上了能正常跑起来很稳定,但是写入到Windowsservice上启动不鸟,报“错误1053:服务没有及时响应启动或控制请求”,牛人们帮小弟看看
代码如下:

// TODO: 在此处添加代码以启动服务。
StringBuilder logsb = new StringBuilder();

//设置缓冲区1024字节
byte[] buffer = new byte[10];
//初始化ServerSocket
IPHostEntry serverHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress serverIP = serverHost.AddressList[0];
IPEndPoint serverPort = new IPEndPoint(serverIP, 11010); //端口号按实际设置
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

//将ServerSocket绑定到本地
try
{
serverSocket.Bind(serverPort);
//开始监听,并设置最大连接队列为10
serverSocket.Listen(2);
while (true)
{
logsb.Append("服务器地址 : " + serverPort.ToString() + "\r\n");
logsb.Append("等待连接...\r\n");
StreamWriter LogWriter = new StreamWriter("D:\\SocketService.log", true, System.Text.Encoding.GetEncoding("GB2312"));
LogWriter.Write("" + logsb.ToString() + "\r\n");
LogWriter.Close();

//此时Listenling线程将暂停等待,直到有连接请求的到来
Socket handler = serverSocket.Accept();
string receiveData = "";
Single dataTotalSize = 0;
int dataSize = handler.Receive(buffer);
receiveData += Encoding.UTF8.GetString(buffer, 0, dataSize);
dataTotalSize += dataSize;

//处理此请求
while (dataSize > 0 && handler.Available > 0)
{
dataSize = handler.Receive(buffer);
receiveData += Encoding.UTF8.GetString(buffer, 0, dataSize);
dataTotalSize += dataSize;
}


//显示接收到的请求数据

logsb.Append("接收数据[大小:" + dataTotalSize + " bytes] 来自 [" + handler.RemoteEndPoint.ToString() + "]: \r\n " + receiveData + "\r\n");
string[] types = receiveData.Split(':');
string backcontent = "";
if (types != null && types.Length > 0)
{
if (Convert.ToString(types[0]) == "Login")
{
backcontent = Login(Convert.ToString(types[1]));
}
if (Convert.ToString(types[0]) == "SignCard")
{
backcontent = SignCard(Convert.ToString(types[1]));
}
}

//将接收到的数据和数据大小返回给Client
byte[] returnBytes = Encoding.UTF8.GetBytes(backcontent + "\r\n数据大小: " + dataTotalSize);
handler.Send(returnBytes);
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}
}
catch (Exception)
{
...全文
209 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxingmin 2012-03-20
  • 打赏
  • 举报
回复
是权限的问题
解决办法:将NT AUTHORITY\NetworkService用户添加到Administrator组中。
我的电脑-->右键-->管理-->本地用户和组;
选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network Service用户-->两次单击“确定”-->加入。
二当家 2012-03-20
  • 打赏
  • 举报
回复

菜鸟路过

完全看不懂

只能帮顶。。

「已注销」 2012-03-20
  • 打赏
  • 举报
回复
哪位牛人有空帮忙看看吧,把接受数据那块注释掉就可以启动
「已注销」 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gxingmin 的回复:]

是权限的问题
解决办法:将NT AUTHORITY\NetworkService用户添加到Administrator组中。
我的电脑-->右键-->管理-->本地用户和组;
选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network Service用户-->两次单击“确定”-->加入。
[/Quote]
不行啊 ,还是报:1053的错

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧