Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
HalconScanCodeServer
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit bb5d445d
由
刘韬
编写于
2023-10-12 10:16:48 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
添加动态变换端口, 新端口记录到注册表
1 个父辈
f5152a5a
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
22 行增加
和
5 行删除
ScanCodeServer/WebServer.cs
ScanCodeServer/WebServer.cs
查看文件 @
bb5d445
using
System
;
using
Microsoft.Win32
;
using
System
;
using
System.ServiceModel
;
using
System.ServiceModel.Web
;
using
System.Windows.Forms
;
namespace
ScanCodeServer
{
...
...
@@ -9,22 +11,37 @@ namespace ScanCodeServer
private
static
WebServiceHost
_serviceHost
;
public
static
bool
IsOpen
{
private
set
;
get
;
}
static
WebWork
service
=
new
WebWork
();
static
int
errcount
=
0
;
public
static
void
Open
(
string
url
)
{
var
u
=
new
Uri
(
url
);
try
{
WebWork
service
=
new
WebWork
();
_serviceHost
=
new
WebServiceHost
(
service
,
new
Uri
(
url
));
_serviceHost
=
new
WebServiceHost
(
service
,
u
);
_serviceHost
.
Open
();
Registry
.
SetValue
(
"HKEY_LOCAL_MACHINE\\SOFTWARE\\ScanCodeServer\\"
,
"port"
,
u
.
Port
);
Common
.
log
.
Info
(
"Web服务已开启,URL="
+
url
);
IsOpen
=
true
;
}
catch
(
AddressAlreadyInUseException
ex
)
{
Common
.
log
.
Info
(
"端口:"
+
u
.
Port
+
" 被占用"
);
errcount
++;
if
(
errcount
>
20
)
{
Environment
.
Exit
(
99
);
return
;
}
Random
a
=
new
Random
((
int
)
DateTime
.
Now
.
Ticks
);
var
nu
=
"http://0.0.0.0:"
+
a
.
Next
(
40000
,
60000
)+
"/"
;
Open
(
nu
);
}
catch
(
Exception
ex
)
{
Common
.
log
.
Error
(
"WebService Open"
,
ex
);
IsOpen
=
false
;
Environment
.
Exit
(
98
);
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论