Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
bingbingbingbing
mono
提交
0bb7a5de
M
mono
项目概览
bingbingbingbing
/
mono
与 Fork 源项目一致
从无法访问的项目Fork
通知
35
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mono
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
0bb7a5de
编写于
4月 16, 2011
作者:
A
Atsushi Eno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Prepare for HostNameComparisonMode support (i.e. incomplete).
This is for bugfix #687580.
上级
8a8df838
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
13 addition
and
9 deletion
+13
-9
mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpChannelListener.cs
.../System.ServiceModel.Channels.Http/HttpChannelListener.cs
+1
-1
mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpListenerManager.cs
.../System.ServiceModel.Channels.Http/HttpListenerManager.cs
+5
-1
mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpListenerManagerTable.cs
...em.ServiceModel.Channels.Http/HttpListenerManagerTable.cs
+5
-5
mcs/class/System.ServiceModel/System.ServiceModel.Channels/SvcHttpHandler.cs
...rviceModel/System.ServiceModel.Channels/SvcHttpHandler.cs
+2
-2
未找到文件。
mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpChannelListener.cs
浏览文件 @
0bb7a5de
...
...
@@ -120,7 +120,7 @@ namespace System.ServiceModel.Channels.Http
protected
HttpListenerManager
GetOrCreateListenerManager
()
{
var
table
=
HttpListenerManagerTable
.
GetOrCreate
(
ChannelDispatcher
!=
null
?
ChannelDispatcher
.
Host
:
null
);
return
table
.
GetOrCreateManager
(
Uri
);
return
table
.
GetOrCreateManager
(
Uri
,
Source
);
}
protected
override
void
OnOpen
(
TimeSpan
timeout
)
...
...
mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpListenerManager.cs
浏览文件 @
0bb7a5de
...
...
@@ -107,11 +107,15 @@ namespace System.ServiceModel.Channels.Http
internal
class
HttpStandaloneListenerManager
:
HttpListenerManager
{
public
HttpStandaloneListenerManager
(
Uri
uri
)
public
HttpStandaloneListenerManager
(
Uri
uri
,
HttpTransportBindingElement
element
)
{
var
l
=
new
HttpListener
();
#if false // FIXME: enable this once we found out why this causes problem
string
uriString
=
element
.
HostNameComparisonMode
==
HostNameComparisonMode
.
Exact
?
uri
.
ToString
()
:
uri
.
Scheme
+
"://*"
+
uri
.
GetComponents
(
UriComponents
.
Port
|
UriComponents
.
Path
,
UriFormat
.
SafeUnescaped
);
#else
string
uriString
=
uri
.
ToString
();
#endif
if
(!
uriString
.
EndsWith
(
"/"
,
StringComparison
.
Ordinal
))
uriString
+=
"/"
;
// HttpListener requires this mess.
...
...
mcs/class/System.ServiceModel/System.ServiceModel.Channels.Http/HttpListenerManagerTable.cs
浏览文件 @
0bb7a5de
...
...
@@ -70,7 +70,7 @@ namespace System.ServiceModel.Channels.Http
public
object
ServiceHostKey
{
get
;
private
set
;
}
public
HttpListenerManager
GetOrCreateManager
(
Uri
uri
)
public
HttpListenerManager
GetOrCreateManager
(
Uri
uri
,
HttpTransportBindingElement
element
)
{
var
m
=
listeners
.
FirstOrDefault
(
p
=>
p
.
Key
.
Equals
(
uri
)).
Value
;
if
(
m
==
null
)
{
...
...
@@ -78,7 +78,7 @@ namespace System.ServiceModel.Channels.Http
string
absolutePath
=
uri
.
AbsolutePath
;
if
(
absolutePath
.
EndsWith
(
"/js"
,
StringComparison
.
Ordinal
)
||
absolutePath
.
EndsWith
(
"/jsdebug"
,
StringComparison
.
Ordinal
))
return
CreateListenerManager
(
uri
);
return
CreateListenerManager
(
uri
,
element
);
// Try without the query, if any
UriBuilder
ub
=
null
;
...
...
@@ -110,19 +110,19 @@ namespace System.ServiceModel.Channels.Http
}
if
(
m
==
null
)
return
CreateListenerManager
(
uri
);
return
CreateListenerManager
(
uri
,
element
);
return
m
;
}
HttpListenerManager
CreateListenerManager
(
Uri
uri
)
HttpListenerManager
CreateListenerManager
(
Uri
uri
,
HttpTransportBindingElement
element
)
{
HttpListenerManager
m
;
if
(
ServiceHostingEnvironment
.
InAspNet
)
m
=
new
AspNetHttpListenerManager
(
uri
);
else
m
=
new
HttpStandaloneListenerManager
(
uri
);
m
=
new
HttpStandaloneListenerManager
(
uri
,
element
);
listeners
[
uri
]
=
m
;
return
m
;
...
...
mcs/class/System.ServiceModel/System.ServiceModel.Channels/SvcHttpHandler.cs
浏览文件 @
0bb7a5de
...
...
@@ -75,9 +75,9 @@ namespace System.ServiceModel.Channels
EnsureServiceHost
();
var
table
=
HttpListenerManagerTable
.
GetOrCreate
(
host
);
var
manager
=
table
.
GetOrCreateManager
(
context
.
Request
.
Url
);
var
manager
=
table
.
GetOrCreateManager
(
context
.
Request
.
Url
,
null
);
if
(
manager
==
null
)
manager
=
table
.
GetOrCreateManager
(
host
.
BaseAddresses
[
0
]);
manager
=
table
.
GetOrCreateManager
(
host
.
BaseAddresses
[
0
]
,
null
);
var
wait
=
new
ManualResetEvent
(
false
);
wcf_wait_handles
[
context
]
=
wait
;
manager
.
ProcessNewContext
(
new
System
.
ServiceModel
.
Channels
.
Http
.
AspNetHttpContextInfo
(
this
,
context
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录