You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@@ -0,0 +1,61 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="ApplicationHost.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace System.Web.Hosting {
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Collections;
|
||||
using System.Globalization;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Remoting;
|
||||
using System.Web;
|
||||
using System.Web.Configuration;
|
||||
using System.Web.Util;
|
||||
using System.Security.Permissions;
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>[To be supplied.]</para>
|
||||
/// </devdoc>
|
||||
public sealed class ApplicationHost {
|
||||
|
||||
private ApplicationHost() {
|
||||
}
|
||||
|
||||
/*
|
||||
* Creates new app domain for hosting of ASP.NET apps with a
|
||||
* user defined 'host' object in it. The host is needed to make
|
||||
* cross-domain calls to process requests in the host's app domain
|
||||
*/
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>[To be supplied.]</para>
|
||||
/// </devdoc>
|
||||
[SecurityPermission(SecurityAction.Demand, Unrestricted=true)]
|
||||
public static Object CreateApplicationHost(Type hostType, String virtualDir, String physicalDir) {
|
||||
#if !FEATURE_PAL // FEATURE_PAL does not require PlatformID.Win32NT
|
||||
if (Environment.OSVersion.Platform != PlatformID.Win32NT)
|
||||
throw new PlatformNotSupportedException(SR.GetString(SR.RequiresNT));
|
||||
#else // !FEATURE_PAL
|
||||
// FEATURE_PAL
|
||||
#endif // !FEATURE_PAL
|
||||
|
||||
if (!StringUtil.StringEndsWith(physicalDir, Path.DirectorySeparatorChar))
|
||||
physicalDir = physicalDir + Path.DirectorySeparatorChar;
|
||||
|
||||
ApplicationManager appManager = ApplicationManager.GetApplicationManager();
|
||||
|
||||
String appId = StringUtil.GetNonRandomizedHashCode(String.Concat(virtualDir, physicalDir)).ToString("x");
|
||||
|
||||
|
||||
ObjectHandle h = appManager.CreateInstanceInNewWorkerAppDomain(
|
||||
hostType, appId, VirtualPath.CreateNonRelative(virtualDir), physicalDir);
|
||||
|
||||
return h.Unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user