Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
bingbingbingbing
mono
提交
b76dfd8c
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 搜索 >>
提交
b76dfd8c
编写于
4月 17, 2011
作者:
M
Marek Habersack
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[asp.net] Implemented undocumented BuildManagerHost class to support the Cassini ASP.NET host
上级
012ec445
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
80 addition
and
12 deletion
+80
-12
mcs/class/System.Web/System.Web.Compilation/BuildManagerHost.cs
...ass/System.Web/System.Web.Compilation/BuildManagerHost.cs
+54
-0
mcs/class/System.Web/System.Web.dll.sources
mcs/class/System.Web/System.Web.dll.sources
+1
-0
mcs/class/System.Web/System.Web/HttpRuntime.cs
mcs/class/System.Web/System.Web/HttpRuntime.cs
+25
-12
未找到文件。
mcs/class/System.Web/System.Web.Compilation/BuildManagerHost.cs
0 → 100644
浏览文件 @
b76dfd8c
//
// Authors:
// Marek Habersack <grendel@twistedcode.net>
//
// (C) 2011 Novell, Inc (http://novell.com)
//
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using
System
;
using
System.Collections.Concurrent
;
using
System.Web
;
using
System.Web.Hosting
;
namespace
System.Web.Compilation
{
class
BuildManagerHost
:
MarshalByRefObject
,
IRegisteredObject
{
// This method is used by the Cassini ASP.NET host application (and all of its
// derivatives, e.g. CassiniDev, see http://cassinidev.codeplex.com) to register the
// host assembly with System.Web's assembly resolver in order to enable loading
// types from assemblies not installed in GAC.
//
protected
void
RegisterAssembly
(
string
assemblyName
,
string
assemblyLocation
)
{
if
(
String
.
IsNullOrEmpty
(
assemblyName
)
||
String
.
IsNullOrEmpty
(
assemblyLocation
))
return
;
HttpRuntime
.
RegisteredAssemblies
.
InsertOrUpdate
((
uint
)
assemblyName
.
GetHashCode
(),
assemblyName
,
assemblyLocation
,
assemblyLocation
);
HttpRuntime
.
EnableAssemblyMapping
(
true
);
}
public
void
Stop
(
bool
immediate
)
{}
}
}
mcs/class/System.Web/System.Web.dll.sources
浏览文件 @
b76dfd8c
...
...
@@ -50,6 +50,7 @@ System.Web.Compilation/AssemblyBuilder.cs
System.Web.Compilation/BaseCompiler.cs
System.Web.Compilation/BuildDependencySet.cs
System.Web.Compilation/BuildManager.cs
System.Web.Compilation/BuildManagerHost.cs
System.Web.Compilation/BuildManagerCacheItem.cs
System.Web.Compilation/BuildManagerDirectoryBuilder.cs
System.Web.Compilation/BuildManagerRemoveEntryEventHandler.cs
...
...
mcs/class/System.Web/System.Web/HttpRuntime.cs
浏览文件 @
b76dfd8c
...
...
@@ -35,6 +35,7 @@ using System.IO;
using
System.Text
;
using
System.Globalization
;
using
System.Collections
;
using
System.Collections.Concurrent
;
using
System.Reflection
;
using
System.Security
;
using
System.Security.Permissions
;
...
...
@@ -61,7 +62,7 @@ namespace System.Web
public
sealed
class
HttpRuntime
{
static
bool
domainUnloading
;
static
SplitOrderedList
<
string
,
string
>
registeredAssemblies
;
#if TARGET_J2EE
static
QueueManager
queue_manager
{
get
{
return
_runtime
.
_queue_manager
;
}
}
static
TraceManager
trace_manager
{
get
{
return
_runtime
.
_trace_manager
;
}
}
...
...
@@ -153,6 +154,7 @@ namespace System.Web
if
(
trace_manager
.
HasException
)
initialException
=
trace_manager
.
InitialException
;
registeredAssemblies
=
new
SplitOrderedList
<
string
,
string
>
(
StringComparer
.
Ordinal
);
cache
=
new
Cache
();
internalCache
=
new
Cache
();
internalCache
.
DependencyCache
=
internalCache
;
...
...
@@ -164,6 +166,10 @@ namespace System.Web
});
end_of_send_cb
=
new
HttpWorkerRequest
.
EndOfSendNotification
(
EndOfSend
);
}
internal
static
SplitOrderedList
<
string
,
string
>
RegisteredAssemblies
{
get
{
return
registeredAssemblies
;
}
}
#region AppDomain handling
internal
static
bool
DomainUnloading
{
...
...
@@ -706,22 +712,29 @@ namespace System.Web
AssemblyName
an
=
new
AssemblyName
(
e
.
Name
);
string
dynamic_base
=
AppDomain
.
CurrentDomain
.
SetupInformation
.
DynamicBase
;
string
compiled
=
Path
.
Combine
(
dynamic_base
,
an
.
Name
+
".compiled"
);
string
asmPath
;
if
(!
File
.
Exists
(
compiled
))
return
null
;
PreservationFile
pf
;
try
{
pf
=
new
PreservationFile
(
compiled
);
}
catch
(
Exception
ex
)
{
throw
new
HttpException
(
String
.
Format
(
"Failed to read preservation file {0}"
,
an
.
Name
+
".compiled"
),
ex
);
if
(!
File
.
Exists
(
compiled
))
{
string
fn
=
an
.
FullName
;
if
(!
RegisteredAssemblies
.
Find
((
uint
)
fn
.
GetHashCode
(),
fn
,
out
asmPath
))
return
null
;
}
else
{
PreservationFile
pf
;
try
{
pf
=
new
PreservationFile
(
compiled
);
}
catch
(
Exception
ex
)
{
throw
new
HttpException
(
String
.
Format
(
"Failed to read preservation file {0}"
,
an
.
Name
+
".compiled"
),
ex
);
}
asmPath
=
Path
.
Combine
(
dynamic_base
,
pf
.
Assembly
+
".dll"
);
}
if
(
String
.
IsNullOrEmpty
(
asmPath
))
return
null
;
Assembly
ret
=
null
;
try
{
string
asmPath
=
Path
.
Combine
(
dynamic_base
,
pf
.
Assembly
+
".dll"
);
ret
=
Assembly
.
LoadFrom
(
asmPath
);
}
catch
(
Exception
)
{
// ignore
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录