parent
edf289ec51
commit
b59d9f13b1
@ -1,7 +0,0 @@
|
|||||||
del ..\deploy\*.* /s/q
|
|
||||||
xcopy bin\x86 ..\deploy /S /I /F /Y <nul:
|
|
||||||
del ..\deploy\*vshost* /s
|
|
||||||
del ..\deploy\release\*.pdb /s
|
|
||||||
del ..\deploy\*.db3 /s
|
|
||||||
rem tree ..\deploy /f>..\deploy.txt
|
|
||||||
copy ..\*.txt ..\deploy\ /Y
|
|
@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<configuration>
|
|
||||||
<runtime>
|
|
||||||
<generatePublisherEvidence enabled="false"/>
|
|
||||||
</runtime>
|
|
||||||
<startup useLegacyV2RuntimeActivationPolicy="true">
|
|
||||||
<supportedRuntime version="v4.0" />
|
|
||||||
</startup>
|
|
||||||
</configuration>
|
|
@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<configuration>
|
|
||||||
<runtime>
|
|
||||||
<generatePublisherEvidence enabled="false"/>
|
|
||||||
</runtime>
|
|
||||||
<startup useLegacyV2RuntimeActivationPolicy="true">
|
|
||||||
<supportedRuntime version="v4.0" />
|
|
||||||
</startup>
|
|
||||||
</configuration>
|
|
@ -1,410 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) 2010 Sky Sanders. All rights reserved.
|
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.txt file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.IO;
|
|
||||||
using System.Net;
|
|
||||||
using System.Net.Sockets;
|
|
||||||
using System.Text;
|
|
||||||
using System.Web;
|
|
||||||
using CassiniDev.ServerLog;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev
|
|
||||||
{
|
|
||||||
public class Connection : MarshalByRefObject
|
|
||||||
{
|
|
||||||
private const int HttpForbidden = 403;
|
|
||||||
|
|
||||||
private const int HttpOK = 200;
|
|
||||||
|
|
||||||
private readonly MemoryStream _responseContent;
|
|
||||||
|
|
||||||
private readonly Server _server;
|
|
||||||
private LogInfo _requestLog;
|
|
||||||
private LogInfo _responseLog;
|
|
||||||
|
|
||||||
private Socket _socket;
|
|
||||||
|
|
||||||
internal Connection(Server server, Socket socket)
|
|
||||||
{
|
|
||||||
Id = Guid.NewGuid();
|
|
||||||
_responseContent = new MemoryStream();
|
|
||||||
_server = server;
|
|
||||||
_socket = socket;
|
|
||||||
InitializeLogInfo();
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Connected
|
|
||||||
{
|
|
||||||
get { return _socket.Connected; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public Guid Id { get; private set; }
|
|
||||||
|
|
||||||
public string LocalIP
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
IPEndPoint ep = (IPEndPoint) _socket.LocalEndPoint;
|
|
||||||
return (ep != null && ep.Address != null) ? ep.Address.ToString() : "127.0.0.1";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string RemoteIP
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
IPEndPoint ep = (IPEndPoint) _socket.RemoteEndPoint;
|
|
||||||
return (ep != null && ep.Address != null) ? ep.Address.ToString() : "127.0.0.1";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public LogInfo RequestLog
|
|
||||||
{
|
|
||||||
get { return _requestLog; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public LogInfo ResponseLog
|
|
||||||
{
|
|
||||||
get { return _responseLog; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Close()
|
|
||||||
{
|
|
||||||
FinalizeLogInfo();
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_socket.Shutdown(SocketShutdown.Both);
|
|
||||||
_socket.Close();
|
|
||||||
}
|
|
||||||
// ReSharper disable EmptyGeneralCatchClause
|
|
||||||
catch
|
|
||||||
// ReSharper restore EmptyGeneralCatchClause
|
|
||||||
{
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
_socket = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// </summary>
|
|
||||||
public override object InitializeLifetimeService()
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void LogRequest(string pathTranslated, string url)
|
|
||||||
{
|
|
||||||
_requestLog.PathTranslated = pathTranslated;
|
|
||||||
|
|
||||||
_requestLog.Url = url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void LogRequestBody(byte[] content)
|
|
||||||
{
|
|
||||||
_requestLog.Body = content;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void LogRequestHeaders(string headers)
|
|
||||||
{
|
|
||||||
_requestLog.Headers = headers;
|
|
||||||
}
|
|
||||||
|
|
||||||
public byte[] ReadRequestBytes(int maxBytes)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (WaitForRequestBytes() == 0)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
int numBytes = _socket.Available;
|
|
||||||
|
|
||||||
if (numBytes > maxBytes)
|
|
||||||
{
|
|
||||||
numBytes = maxBytes;
|
|
||||||
}
|
|
||||||
|
|
||||||
int numReceived = 0;
|
|
||||||
|
|
||||||
byte[] buffer = new byte[numBytes];
|
|
||||||
|
|
||||||
if (numBytes > 0)
|
|
||||||
{
|
|
||||||
numReceived = _socket.Receive(buffer, 0, numBytes, SocketFlags.None);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (numReceived < numBytes)
|
|
||||||
{
|
|
||||||
byte[] tempBuffer = new byte[numReceived];
|
|
||||||
|
|
||||||
if (numReceived > 0)
|
|
||||||
{
|
|
||||||
Buffer.BlockCopy(buffer, 0, tempBuffer, 0, numReceived);
|
|
||||||
}
|
|
||||||
|
|
||||||
buffer = tempBuffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int WaitForRequestBytes()
|
|
||||||
{
|
|
||||||
int availBytes = 0;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (_socket.Available == 0)
|
|
||||||
{
|
|
||||||
_socket.Poll(100000, SelectMode.SelectRead);
|
|
||||||
|
|
||||||
if (_socket.Available == 0 && _socket.Connected)
|
|
||||||
{
|
|
||||||
_socket.Poll(30000000, SelectMode.SelectRead);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
availBytes = _socket.Available;
|
|
||||||
}
|
|
||||||
// ReSharper disable EmptyGeneralCatchClause
|
|
||||||
catch
|
|
||||||
// ReSharper restore EmptyGeneralCatchClause
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
return availBytes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Write100Continue()
|
|
||||||
{
|
|
||||||
WriteEntireResponseFromString(100, null, null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void WriteBody(byte[] data, int offset, int length)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_responseContent.Write(data, 0, data.Length);
|
|
||||||
_socket.Send(data, offset, length, SocketFlags.None);
|
|
||||||
}
|
|
||||||
catch (SocketException)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void WriteEntireResponseFromFile(String fileName, bool keepAlive)
|
|
||||||
{
|
|
||||||
if (!File.Exists(fileName))
|
|
||||||
{
|
|
||||||
WriteErrorAndClose(404);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deny the request if the contentType cannot be recognized.
|
|
||||||
|
|
||||||
string contentType = Common.GetContentType(fileName);
|
|
||||||
|
|
||||||
//TODO: i am pretty sure this is unnecessary
|
|
||||||
if (contentType == null)
|
|
||||||
{
|
|
||||||
WriteErrorAndClose(HttpForbidden);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
string contentTypeHeader = "Content-Type: " + contentType + "\r\n";
|
|
||||||
|
|
||||||
bool completed = false;
|
|
||||||
FileStream fs = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
|
|
||||||
int len = (int) fs.Length;
|
|
||||||
byte[] fileBytes = new byte[len];
|
|
||||||
int bytesRead = fs.Read(fileBytes, 0, len);
|
|
||||||
|
|
||||||
String headers = MakeResponseHeaders(HttpOK, contentTypeHeader, bytesRead, keepAlive);
|
|
||||||
_responseLog.Headers = headers;
|
|
||||||
_responseLog.StatusCode = HttpOK;
|
|
||||||
_socket.Send(Encoding.UTF8.GetBytes(headers));
|
|
||||||
|
|
||||||
_socket.Send(fileBytes, 0, bytesRead, SocketFlags.None);
|
|
||||||
|
|
||||||
completed = true;
|
|
||||||
}
|
|
||||||
catch (SocketException)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (!keepAlive || !completed)
|
|
||||||
{
|
|
||||||
Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fs != null)
|
|
||||||
{
|
|
||||||
fs.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void WriteEntireResponseFromString(int statusCode, String extraHeaders, String body, bool keepAlive)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
int bodyLength = (body != null) ? Encoding.UTF8.GetByteCount(body) : 0;
|
|
||||||
string headers = MakeResponseHeaders(statusCode, extraHeaders, bodyLength, keepAlive);
|
|
||||||
|
|
||||||
_responseLog.Headers = headers;
|
|
||||||
_responseLog.StatusCode = statusCode;
|
|
||||||
_socket.Send(Encoding.UTF8.GetBytes(headers + body));
|
|
||||||
}
|
|
||||||
catch (SocketException)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (!keepAlive)
|
|
||||||
{
|
|
||||||
Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void WriteErrorAndClose(int statusCode, string message)
|
|
||||||
{
|
|
||||||
WriteEntireResponseFromString(statusCode, null, GetErrorResponseBody(statusCode, message), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void WriteErrorAndClose(int statusCode)
|
|
||||||
{
|
|
||||||
WriteErrorAndClose(statusCode, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void WriteErrorWithExtraHeadersAndKeepAlive(int statusCode, string extraHeaders)
|
|
||||||
{
|
|
||||||
WriteEntireResponseFromString(statusCode, extraHeaders, GetErrorResponseBody(statusCode, null), true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void WriteHeaders(int statusCode, String extraHeaders)
|
|
||||||
{
|
|
||||||
string headers = MakeResponseHeaders(statusCode, extraHeaders, -1, false);
|
|
||||||
|
|
||||||
_responseLog.Headers = headers;
|
|
||||||
_responseLog.StatusCode = statusCode;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_socket.Send(Encoding.UTF8.GetBytes(headers));
|
|
||||||
}
|
|
||||||
catch (SocketException)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void FinalizeLogInfo()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_responseLog.Body = _responseContent.ToArray();
|
|
||||||
_responseContent.Dispose();
|
|
||||||
_responseLog.Created = DateTime.Now;
|
|
||||||
_responseLog.Url = _requestLog.Url;
|
|
||||||
_responseLog.PathTranslated = _requestLog.PathTranslated;
|
|
||||||
_responseLog.Identity = _requestLog.Identity;
|
|
||||||
_responseLog.PhysicalPath = _requestLog.PhysicalPath;
|
|
||||||
}
|
|
||||||
// ReSharper disable EmptyGeneralCatchClause
|
|
||||||
catch
|
|
||||||
// ReSharper restore EmptyGeneralCatchClause
|
|
||||||
{
|
|
||||||
// log error to text
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private string GetErrorResponseBody(int statusCode, string message)
|
|
||||||
{
|
|
||||||
string body = Messages.FormatErrorMessageBody(statusCode, _server.VirtualPath);
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(message))
|
|
||||||
{
|
|
||||||
body += "\r\n<!--\r\n" + message + "\r\n-->";
|
|
||||||
}
|
|
||||||
|
|
||||||
return body;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void InitializeLogInfo()
|
|
||||||
{
|
|
||||||
_requestLog = new LogInfo
|
|
||||||
{
|
|
||||||
Created = DateTime.Now,
|
|
||||||
ConversationId = Id,
|
|
||||||
RowType = 1,
|
|
||||||
Identity = _server.GetProcessUser(),
|
|
||||||
PhysicalPath = _server.PhysicalPath
|
|
||||||
};
|
|
||||||
|
|
||||||
_responseLog = new LogInfo
|
|
||||||
{
|
|
||||||
ConversationId = Id,
|
|
||||||
RowType = 2
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string MakeResponseHeaders(int statusCode, string moreHeaders, int contentLength, bool keepAlive)
|
|
||||||
{
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
|
|
||||||
sb.Append("HTTP/1.1 " + statusCode + " " + HttpWorkerRequest.GetStatusDescription(statusCode) + "\r\n");
|
|
||||||
sb.Append("Server: Cassini/" + Messages.VersionString + "\r\n");
|
|
||||||
sb.Append("Date: " + DateTime.Now.ToUniversalTime().ToString("R", DateTimeFormatInfo.InvariantInfo) + "\r\n");
|
|
||||||
|
|
||||||
if (contentLength >= 0)
|
|
||||||
{
|
|
||||||
sb.Append("Content-Length: " + contentLength + "\r\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (moreHeaders != null)
|
|
||||||
{
|
|
||||||
sb.Append(moreHeaders);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!keepAlive)
|
|
||||||
{
|
|
||||||
sb.Append("Connection: Close\r\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
sb.Append("\r\n");
|
|
||||||
|
|
||||||
return sb.ToString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,296 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) 2010 Sky Sanders. All rights reserved.
|
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.txt file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.Security.Permissions;
|
|
||||||
using System.Security.Principal;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Web;
|
|
||||||
using System.Web.Hosting;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 01/01/10 sky: added HttpRuntime.Close to IRegisteredObject.Stop to eliminate
|
|
||||||
/// System.AppDomainUnloadedException when running tests in NUnit GuiRunner.
|
|
||||||
/// reference: http://stackoverflow.com/questions/561402/cassini-webserver-webdev-nunit-and-appdomainunloadedexception
|
|
||||||
/// need to test thoroughly but seems to work just fine with no ill effects
|
|
||||||
/// 01.03.10 sky: removed the HttpRuntime.Close because, even though it tests fine, I am not entirely certain it is in the right place
|
|
||||||
/// and since I am no longer recommending that the server be used as a library in testing (run a console instance in a new process).
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
internal class Host : MarshalByRefObject, IRegisteredObject
|
|
||||||
{
|
|
||||||
private bool _disableDirectoryListing;
|
|
||||||
|
|
||||||
private string _installPath;
|
|
||||||
|
|
||||||
private string _lowerCasedClientScriptPathWithTrailingSlash;
|
|
||||||
|
|
||||||
private string _lowerCasedVirtualPath;
|
|
||||||
|
|
||||||
private string _lowerCasedVirtualPathWithTrailingSlash;
|
|
||||||
|
|
||||||
private volatile int _pendingCallsCount;
|
|
||||||
|
|
||||||
private string _physicalClientScriptPath;
|
|
||||||
|
|
||||||
private string _physicalPath;
|
|
||||||
|
|
||||||
private int _port;
|
|
||||||
|
|
||||||
private bool _requireAuthentication;
|
|
||||||
|
|
||||||
private Server _server;
|
|
||||||
|
|
||||||
private string _virtualPath;
|
|
||||||
|
|
||||||
public Host()
|
|
||||||
{
|
|
||||||
HostingEnvironment.RegisterObject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool DisableDirectoryListing
|
|
||||||
{
|
|
||||||
get { return _disableDirectoryListing; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public string InstallPath
|
|
||||||
{
|
|
||||||
get { return _installPath; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public string NormalizedClientScriptPath
|
|
||||||
{
|
|
||||||
get { return _lowerCasedClientScriptPathWithTrailingSlash; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public string NormalizedVirtualPath
|
|
||||||
{
|
|
||||||
get { return _lowerCasedVirtualPathWithTrailingSlash; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public string PhysicalClientScriptPath
|
|
||||||
{
|
|
||||||
get { return _physicalClientScriptPath; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public string PhysicalPath
|
|
||||||
{
|
|
||||||
get { return _physicalPath; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Port
|
|
||||||
{
|
|
||||||
get { return _port; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool RequireAuthentication
|
|
||||||
{
|
|
||||||
get { return _requireAuthentication; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public string VirtualPath
|
|
||||||
{
|
|
||||||
get { return _virtualPath; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#region IRegisteredObject Members
|
|
||||||
|
|
||||||
void IRegisteredObject.Stop(bool immediate)
|
|
||||||
{
|
|
||||||
// Unhook the Host so Server will process the requests in the new appdomain.
|
|
||||||
|
|
||||||
if (_server != null)
|
|
||||||
{
|
|
||||||
_server.HostStopped();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make sure all the pending calls complete before this Object is unregistered.
|
|
||||||
WaitForPendingCallsToFinish();
|
|
||||||
|
|
||||||
HostingEnvironment.UnregisterObject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public void Configure(Server server, int port, string virtualPath, string physicalPath,
|
|
||||||
bool requireAuthentication)
|
|
||||||
{
|
|
||||||
Configure(server, port, virtualPath, physicalPath, requireAuthentication, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Configure(Server server, int port, string virtualPath, string physicalPath)
|
|
||||||
{
|
|
||||||
Configure(server, port, virtualPath, physicalPath, false, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Configure(Server server, int port, string virtualPath, string physicalPath,
|
|
||||||
bool requireAuthentication, bool disableDirectoryListing)
|
|
||||||
{
|
|
||||||
_server = server;
|
|
||||||
|
|
||||||
_port = port;
|
|
||||||
_installPath = null;
|
|
||||||
_virtualPath = virtualPath;
|
|
||||||
_requireAuthentication = requireAuthentication;
|
|
||||||
_disableDirectoryListing = disableDirectoryListing;
|
|
||||||
_lowerCasedVirtualPath = CultureInfo.InvariantCulture.TextInfo.ToLower(_virtualPath);
|
|
||||||
_lowerCasedVirtualPathWithTrailingSlash = virtualPath.EndsWith("/", StringComparison.Ordinal)
|
|
||||||
? virtualPath
|
|
||||||
: virtualPath + "/";
|
|
||||||
_lowerCasedVirtualPathWithTrailingSlash =
|
|
||||||
CultureInfo.InvariantCulture.TextInfo.ToLower(_lowerCasedVirtualPathWithTrailingSlash);
|
|
||||||
_physicalPath = physicalPath;
|
|
||||||
_physicalClientScriptPath = HttpRuntime.AspClientScriptPhysicalPath + "\\";
|
|
||||||
_lowerCasedClientScriptPathWithTrailingSlash =
|
|
||||||
CultureInfo.InvariantCulture.TextInfo.ToLower(HttpRuntime.AspClientScriptVirtualPath + "/");
|
|
||||||
}
|
|
||||||
|
|
||||||
public SecurityIdentifier GetProcessSid()
|
|
||||||
{
|
|
||||||
using (WindowsIdentity identity = new WindowsIdentity(_server.GetProcessToken()))
|
|
||||||
{
|
|
||||||
return identity.User;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public IntPtr GetProcessToken()
|
|
||||||
{
|
|
||||||
new SecurityPermission(PermissionState.Unrestricted).Assert();
|
|
||||||
return _server.GetProcessToken();
|
|
||||||
}
|
|
||||||
|
|
||||||
public string GetProcessUser()
|
|
||||||
{
|
|
||||||
return _server.GetProcessUser();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override object InitializeLifetimeService()
|
|
||||||
{
|
|
||||||
// never expire the license
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsVirtualPathAppPath(string path)
|
|
||||||
{
|
|
||||||
if (path == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
path = CultureInfo.InvariantCulture.TextInfo.ToLower(path);
|
|
||||||
return (path == _lowerCasedVirtualPath || path == _lowerCasedVirtualPathWithTrailingSlash);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsVirtualPathInApp(string path, out bool isClientScriptPath)
|
|
||||||
{
|
|
||||||
isClientScriptPath = false;
|
|
||||||
|
|
||||||
if (path == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_virtualPath == "/" && path.StartsWith("/", StringComparison.Ordinal))
|
|
||||||
{
|
|
||||||
if (path.StartsWith(_lowerCasedClientScriptPathWithTrailingSlash, StringComparison.Ordinal))
|
|
||||||
{
|
|
||||||
isClientScriptPath = true;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
path = CultureInfo.InvariantCulture.TextInfo.ToLower(path);
|
|
||||||
|
|
||||||
if (path.StartsWith(_lowerCasedVirtualPathWithTrailingSlash, StringComparison.Ordinal))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (path == _lowerCasedVirtualPath)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (path.StartsWith(_lowerCasedClientScriptPathWithTrailingSlash, StringComparison.Ordinal))
|
|
||||||
{
|
|
||||||
isClientScriptPath = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsVirtualPathInApp(String path)
|
|
||||||
{
|
|
||||||
bool isClientScriptPath;
|
|
||||||
return IsVirtualPathInApp(path, out isClientScriptPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ProcessRequest(Connection conn)
|
|
||||||
{
|
|
||||||
// Add a pending call to make sure our thread doesn't get killed
|
|
||||||
AddPendingCall();
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
new Request(_server, this, conn).Process();
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
RemovePendingCall();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[SecurityPermission(SecurityAction.Assert, Unrestricted = true)]
|
|
||||||
public void Shutdown()
|
|
||||||
{
|
|
||||||
HostingEnvironment.InitiateShutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void AddPendingCall()
|
|
||||||
{
|
|
||||||
//TODO: investigate this issue - ref var not volitile
|
|
||||||
#pragma warning disable 0420
|
|
||||||
Interlocked.Increment(ref _pendingCallsCount);
|
|
||||||
#pragma warning restore 0420
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RemovePendingCall()
|
|
||||||
{
|
|
||||||
//TODO: investigate this issue - ref var not volitile
|
|
||||||
#pragma warning disable 0420
|
|
||||||
Interlocked.Decrement(ref _pendingCallsCount);
|
|
||||||
#pragma warning restore 0420
|
|
||||||
}
|
|
||||||
|
|
||||||
private void WaitForPendingCallsToFinish()
|
|
||||||
{
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
if (_pendingCallsCount <= 0)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Thread.Sleep(250);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,164 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.txt file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System.IO;
|
|
||||||
using System.Text;
|
|
||||||
using System.Web;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// TODO: get this into resources
|
|
||||||
/// </summary>
|
|
||||||
internal static class Messages
|
|
||||||
{
|
|
||||||
private const string _dirListingDirFormat =
|
|
||||||
@"{0,38:dddd, MMMM dd, yyyy hh:mm tt} <dir> <A href=""{1}/"">{2}</A>
|
|
||||||
";
|
|
||||||
|
|
||||||
private const string _dirListingFileFormat =
|
|
||||||
@"{0,38:dddd, MMMM dd, yyyy hh:mm tt} {1,12:n0} <A href=""{2}"">{3}</A>
|
|
||||||
";
|
|
||||||
|
|
||||||
private const string _dirListingFormat1 =
|
|
||||||
@"<html>
|
|
||||||
<head>
|
|
||||||
<title>Directory Listing -- {0}</title>
|
|
||||||
";
|
|
||||||
|
|
||||||
private const string _dirListingFormat2 =
|
|
||||||
@" </head>
|
|
||||||
<body bgcolor=""white"">
|
|
||||||
|
|
||||||
<h2> <i>Directory Listing -- {0}</i> </h2></span>
|
|
||||||
|
|
||||||
<hr width=100% size=1 color=silver>
|
|
||||||
|
|
||||||
<PRE>
|
|
||||||
";
|
|
||||||
|
|
||||||
private const string _dirListingParentFormat =
|
|
||||||
@"<A href=""{0}"">[To Parent Directory]</A>
|
|
||||||
|
|
||||||
";
|
|
||||||
|
|
||||||
private const string _httpErrorFormat1 =
|
|
||||||
@"<html>
|
|
||||||
<head>
|
|
||||||
<title>{0}</title>
|
|
||||||
";
|
|
||||||
|
|
||||||
private const string _httpStyle =
|
|
||||||
@" <style>
|
|
||||||
body {font-family:""Verdana"";font-weight:normal;font-size: 8pt;color:black;}
|
|
||||||
p {font-family:""Verdana"";font-weight:normal;color:black;margin-top: -5px}
|
|
||||||
b {font-family:""Verdana"";font-weight:bold;color:black;margin-top: -5px}
|
|
||||||
h1 { font-family:""Verdana"";font-weight:normal;font-size:18pt;color:red }
|
|
||||||
h2 { font-family:""Verdana"";font-weight:normal;font-size:14pt;color:maroon }
|
|
||||||
pre {font-family:""Lucida Console"";font-size: 8pt}
|
|
||||||
.marker {font-weight: bold; color: black;text-decoration: none;}
|
|
||||||
.version {color: gray;}
|
|
||||||
.error {margin-bottom: 10px;}
|
|
||||||
.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
|
|
||||||
</style>
|
|
||||||
";
|
|
||||||
|
|
||||||
private static readonly string _dirListingTail =
|
|
||||||
@"</PRE>
|
|
||||||
<hr width=100% size=1 color=silver>
|
|
||||||
|
|
||||||
<b>Version Information:</b> Cassini Web Server " +
|
|
||||||
VersionString + @"
|
|
||||||
|
|
||||||
</font>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
";
|
|
||||||
|
|
||||||
private static readonly string _httpErrorFormat2 =
|
|
||||||
@" </head>
|
|
||||||
<body bgcolor=""white"">
|
|
||||||
|
|
||||||
<span><h1>Server Error in '{0}' Application.<hr width=100% size=1 color=silver></h1>
|
|
||||||
|
|
||||||
<h2> <i>HTTP Error {1} - {2}.</i> </h2></span>
|
|
||||||
|
|
||||||
<hr width=100% size=1 color=silver>
|
|
||||||
|
|
||||||
<b>Version Information:</b> Cassini Web Server " +
|
|
||||||
VersionString + @"
|
|
||||||
|
|
||||||
</font>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
";
|
|
||||||
|
|
||||||
public static string VersionString = typeof (Server).Assembly.GetName().Version.ToString();
|
|
||||||
|
|
||||||
public static string FormatDirectoryListing(string dirPath, string parentPath, FileSystemInfo[] elements)
|
|
||||||
{
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
|
|
||||||
sb.Append(string.Format(_dirListingFormat1, dirPath));
|
|
||||||
sb.Append(_httpStyle);
|
|
||||||
sb.Append(string.Format(_dirListingFormat2, dirPath));
|
|
||||||
|
|
||||||
if (parentPath != null)
|
|
||||||
{
|
|
||||||
if (!parentPath.EndsWith("/"))
|
|
||||||
{
|
|
||||||
parentPath += "/";
|
|
||||||
}
|
|
||||||
|
|
||||||
sb.Append(string.Format(_dirListingParentFormat, parentPath));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (elements != null)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < elements.Length; i++)
|
|
||||||
{
|
|
||||||
if (elements[i] is FileInfo)
|
|
||||||
{
|
|
||||||
FileInfo fi = (FileInfo) elements[i];
|
|
||||||
sb.Append(string.Format(_dirListingFileFormat,
|
|
||||||
fi.LastWriteTime, fi.Length, fi.Name, fi.Name));
|
|
||||||
}
|
|
||||||
else if (elements[i] is DirectoryInfo)
|
|
||||||
{
|
|
||||||
DirectoryInfo di = (DirectoryInfo) elements[i];
|
|
||||||
sb.Append(string.Format(_dirListingDirFormat,
|
|
||||||
di.LastWriteTime, di.Name, di.Name));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sb.Append(_dirListingTail);
|
|
||||||
return sb.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string FormatErrorMessageBody(int statusCode, string appName)
|
|
||||||
{
|
|
||||||
string desc = HttpWorkerRequest.GetStatusDescription(statusCode);
|
|
||||||
|
|
||||||
return string.Format(_httpErrorFormat1, desc)
|
|
||||||
+ _httpStyle
|
|
||||||
+ string.Format(_httpErrorFormat2, appName, statusCode, desc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,179 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) 2010 Sky Sanders. All rights reserved.
|
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.txt file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Security;
|
|
||||||
using System.Security.Principal;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev
|
|
||||||
{
|
|
||||||
[SuppressUnmanagedCodeSecurity]
|
|
||||||
internal sealed class NtlmAuth : IDisposable
|
|
||||||
{
|
|
||||||
private readonly bool _credentialsHandleAcquired;
|
|
||||||
|
|
||||||
private string _blob;
|
|
||||||
|
|
||||||
private bool _completed;
|
|
||||||
|
|
||||||
private Interop.SecHandle _credentialsHandle;
|
|
||||||
|
|
||||||
private Interop.SecBuffer _inputBuffer;
|
|
||||||
private Interop.SecBufferDesc _inputBufferDesc;
|
|
||||||
|
|
||||||
private Interop.SecBuffer _outputBuffer;
|
|
||||||
|
|
||||||
private Interop.SecBufferDesc _outputBufferDesc;
|
|
||||||
|
|
||||||
private Interop.SecHandle _securityContext;
|
|
||||||
|
|
||||||
private bool _securityContextAcquired;
|
|
||||||
|
|
||||||
private uint _securityContextAttributes;
|
|
||||||
|
|
||||||
private SecurityIdentifier _sid;
|
|
||||||
|
|
||||||
private long _timestamp;
|
|
||||||
|
|
||||||
public NtlmAuth()
|
|
||||||
{
|
|
||||||
if (
|
|
||||||
Interop.AcquireCredentialsHandle(null, "NTLM", 1, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero,
|
|
||||||
ref _credentialsHandle, ref _timestamp) != 0)
|
|
||||||
{
|
|
||||||
throw new InvalidOperationException();
|
|
||||||
}
|
|
||||||
_credentialsHandleAcquired = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Blob
|
|
||||||
{
|
|
||||||
get { return _blob; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Completed
|
|
||||||
{
|
|
||||||
get { return _completed; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public SecurityIdentifier SID
|
|
||||||
{
|
|
||||||
get { return _sid; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#region IDisposable Members
|
|
||||||
|
|
||||||
void IDisposable.Dispose()
|
|
||||||
{
|
|
||||||
FreeUnmanagedResources();
|
|
||||||
GC.SuppressFinalize(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public unsafe bool Authenticate(string blobString)
|
|
||||||
{
|
|
||||||
_blob = null;
|
|
||||||
byte[] buffer = Convert.FromBase64String(blobString);
|
|
||||||
byte[] inArray = new byte[0x4000];
|
|
||||||
fixed (void* ptrRef = &_securityContext)
|
|
||||||
{
|
|
||||||
fixed (void* ptrRef2 = &_inputBuffer)
|
|
||||||
{
|
|
||||||
fixed (void* ptrRef3 = &_outputBuffer)
|
|
||||||
{
|
|
||||||
fixed (void* ptrRef4 = buffer)
|
|
||||||
{
|
|
||||||
fixed (void* ptrRef5 = inArray)
|
|
||||||
{
|
|
||||||
IntPtr zero = IntPtr.Zero;
|
|
||||||
if (_securityContextAcquired)
|
|
||||||
{
|
|
||||||
zero = (IntPtr) ptrRef;
|
|
||||||
}
|
|
||||||
_inputBufferDesc.ulVersion = 0;
|
|
||||||
_inputBufferDesc.cBuffers = 1;
|
|
||||||
_inputBufferDesc.pBuffers = (IntPtr) ptrRef2;
|
|
||||||
_inputBuffer.cbBuffer = (uint) buffer.Length;
|
|
||||||
_inputBuffer.BufferType = 2;
|
|
||||||
_inputBuffer.pvBuffer = (IntPtr) ptrRef4;
|
|
||||||
_outputBufferDesc.ulVersion = 0;
|
|
||||||
_outputBufferDesc.cBuffers = 1;
|
|
||||||
_outputBufferDesc.pBuffers = (IntPtr) ptrRef3;
|
|
||||||
_outputBuffer.cbBuffer = (uint) inArray.Length;
|
|
||||||
_outputBuffer.BufferType = 2;
|
|
||||||
_outputBuffer.pvBuffer = (IntPtr) ptrRef5;
|
|
||||||
int num = Interop.AcceptSecurityContext(ref _credentialsHandle, zero,
|
|
||||||
ref _inputBufferDesc, 20,
|
|
||||||
0, ref _securityContext, ref _outputBufferDesc,
|
|
||||||
ref _securityContextAttributes, ref _timestamp);
|
|
||||||
if (num == 0x90312)
|
|
||||||
{
|
|
||||||
_securityContextAcquired = true;
|
|
||||||
_blob = Convert.ToBase64String(inArray, 0, (int) _outputBuffer.cbBuffer);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (num != 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
IntPtr phToken = IntPtr.Zero;
|
|
||||||
if (Interop.QuerySecurityContextToken(ref _securityContext, ref phToken) != 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
try
|
|
||||||
{
|
|
||||||
using (WindowsIdentity identity = new WindowsIdentity(phToken))
|
|
||||||
{
|
|
||||||
_sid = identity.User;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
Interop.CloseHandle(phToken);
|
|
||||||
}
|
|
||||||
_completed = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
~NtlmAuth()
|
|
||||||
{
|
|
||||||
FreeUnmanagedResources();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void FreeUnmanagedResources()
|
|
||||||
{
|
|
||||||
if (_securityContextAcquired)
|
|
||||||
{
|
|
||||||
Interop.DeleteSecurityContext(ref _securityContext);
|
|
||||||
}
|
|
||||||
if (_credentialsHandleAcquired)
|
|
||||||
{
|
|
||||||
Interop.FreeCredentialsHandle(ref _credentialsHandle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,53 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) 2010 Sky Sanders. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.txt file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using CassiniDev.ServerLog;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev
|
|
||||||
{
|
|
||||||
public class RequestEventArgs : EventArgs
|
|
||||||
{
|
|
||||||
private readonly Guid _id;
|
|
||||||
|
|
||||||
private readonly LogInfo _requestLog;
|
|
||||||
|
|
||||||
private readonly LogInfo _responseLog;
|
|
||||||
|
|
||||||
public RequestEventArgs(Guid id, LogInfo requestLog, LogInfo responseLog)
|
|
||||||
{
|
|
||||||
_requestLog = requestLog;
|
|
||||||
_responseLog = responseLog;
|
|
||||||
_id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Guid Id
|
|
||||||
{
|
|
||||||
get { return _id; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public LogInfo RequestLog
|
|
||||||
{
|
|
||||||
get { return _requestLog; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public LogInfo ResponseLog
|
|
||||||
{
|
|
||||||
get { return _responseLog; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,523 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) 2010 Sky Sanders. All rights reserved.
|
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.txt file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.IO;
|
|
||||||
using System.Net;
|
|
||||||
using System.Net.Sockets;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.Remoting;
|
|
||||||
using System.Security.Permissions;
|
|
||||||
using System.Security.Principal;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Web;
|
|
||||||
using System.Web.Hosting;
|
|
||||||
using CassiniDev.ServerLog;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev
|
|
||||||
{
|
|
||||||
[PermissionSet(SecurityAction.LinkDemand, Name = "Everything"),
|
|
||||||
PermissionSet(SecurityAction.InheritanceDemand, Name = "FullTrust")]
|
|
||||||
public class Server : MarshalByRefObject, IDisposable
|
|
||||||
{
|
|
||||||
private readonly ApplicationManager _appManager;
|
|
||||||
|
|
||||||
private readonly bool _disableDirectoryListing;
|
|
||||||
|
|
||||||
private readonly string _hostName;
|
|
||||||
|
|
||||||
private readonly IPAddress _ipAddress;
|
|
||||||
|
|
||||||
private readonly object _lockObject;
|
|
||||||
|
|
||||||
private readonly string _physicalPath;
|
|
||||||
|
|
||||||
private readonly int _port;
|
|
||||||
private readonly bool _requireAuthentication;
|
|
||||||
private readonly int _timeoutInterval;
|
|
||||||
private readonly string _virtualPath;
|
|
||||||
private bool _disposed;
|
|
||||||
|
|
||||||
private Host _host;
|
|
||||||
|
|
||||||
private IntPtr _processToken;
|
|
||||||
|
|
||||||
private string _processUser;
|
|
||||||
|
|
||||||
private int _requestCount;
|
|
||||||
|
|
||||||
private bool _shutdownInProgress;
|
|
||||||
|
|
||||||
private Socket _socket;
|
|
||||||
|
|
||||||
private Timer _timer;
|
|
||||||
|
|
||||||
public Server(int port, string virtualPath, string physicalPath)
|
|
||||||
: this(port, virtualPath, physicalPath, false, false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server(int port, string physicalPath)
|
|
||||||
: this(port, "/", physicalPath, IPAddress.Loopback)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server(string physicalPath)
|
|
||||||
: this(CassiniNetworkUtils.GetAvailablePort(32768, 65535, IPAddress.Loopback, false), physicalPath)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server(int port, string virtualPath, string physicalPath, IPAddress ipAddress, string hostName,
|
|
||||||
int timeout, bool requireAuthentication)
|
|
||||||
: this(port, virtualPath, physicalPath, ipAddress, hostName, timeout, requireAuthentication, false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server(int port, string virtualPath, string physicalPath, bool requireAuthentication)
|
|
||||||
: this(port, virtualPath, physicalPath, requireAuthentication, false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server(int port, string virtualPath, string physicalPath, IPAddress ipAddress, string hostName)
|
|
||||||
: this(port, virtualPath, physicalPath, ipAddress, hostName, 0, false, false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server(int port, string virtualPath, string physicalPath, IPAddress ipAddress, string hostName,
|
|
||||||
int timeout, bool requireAuthentication, bool disableDirectoryListing)
|
|
||||||
: this(port, virtualPath, physicalPath, requireAuthentication, disableDirectoryListing)
|
|
||||||
{
|
|
||||||
_ipAddress = ipAddress;
|
|
||||||
_hostName = hostName;
|
|
||||||
_timeoutInterval = timeout;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server(int port, string virtualPath, string physicalPath, IPAddress ipAddress)
|
|
||||||
: this(port, virtualPath, physicalPath, ipAddress, null, 0, false, false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server(int port, string virtualPath, string physicalPath, bool requireAuthentication,
|
|
||||||
bool disableDirectoryListing)
|
|
||||||
{
|
|
||||||
_ipAddress = IPAddress.Loopback;
|
|
||||||
_requireAuthentication = requireAuthentication;
|
|
||||||
_disableDirectoryListing = disableDirectoryListing;
|
|
||||||
_lockObject = new object();
|
|
||||||
_port = port;
|
|
||||||
_virtualPath = virtualPath;
|
|
||||||
_physicalPath = Path.GetFullPath(physicalPath);
|
|
||||||
_physicalPath = _physicalPath.EndsWith("\\", StringComparison.Ordinal)
|
|
||||||
? _physicalPath
|
|
||||||
: _physicalPath + "\\";
|
|
||||||
_appManager = ApplicationManager.GetApplicationManager();
|
|
||||||
ObtainProcessToken();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server(string physicalPath, bool requireAuthentication)
|
|
||||||
: this(
|
|
||||||
CassiniNetworkUtils.GetAvailablePort(32768, 65535, IPAddress.Loopback, false), "/", physicalPath,
|
|
||||||
requireAuthentication)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public Server(int port, string virtualPath, string physicalPath, IPAddress ipAddress, string hostName,
|
|
||||||
int timeout)
|
|
||||||
: this(port, virtualPath, physicalPath, ipAddress, hostName, timeout, false, false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool DisableDirectoryListing
|
|
||||||
{
|
|
||||||
get { return _disableDirectoryListing; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool RequireAuthentication
|
|
||||||
{
|
|
||||||
get { return _requireAuthentication; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public int TimeoutInterval
|
|
||||||
{
|
|
||||||
get { return _timeoutInterval; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public string HostName
|
|
||||||
{
|
|
||||||
get { return _hostName; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public IPAddress IPAddress
|
|
||||||
{
|
|
||||||
get { return _ipAddress; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public string PhysicalPath
|
|
||||||
{
|
|
||||||
get { return _physicalPath; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Port
|
|
||||||
{
|
|
||||||
get { return _port; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public string RootUrl
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
string hostname = _hostName;
|
|
||||||
if (string.IsNullOrEmpty(_hostName))
|
|
||||||
{
|
|
||||||
if (_ipAddress.Equals(IPAddress.Loopback) || _ipAddress.Equals(IPAddress.IPv6Loopback) ||
|
|
||||||
_ipAddress.Equals(IPAddress.Any) || _ipAddress.Equals(IPAddress.IPv6Any))
|
|
||||||
{
|
|
||||||
hostname = "localhost";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
hostname = _ipAddress.ToString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return _port != 80
|
|
||||||
?
|
|
||||||
String.Format("http://{0}:{1}{2}", hostname, _port, _virtualPath)
|
|
||||||
:
|
|
||||||
//FIX: #12017 - TODO:TEST
|
|
||||||
string.Format("http://{0}{1}", hostname, _virtualPath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string VirtualPath
|
|
||||||
{
|
|
||||||
get { return _virtualPath; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#region IDisposable Members
|
|
||||||
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
if (!_disposed)
|
|
||||||
{
|
|
||||||
ShutDown();
|
|
||||||
}
|
|
||||||
_disposed = true;
|
|
||||||
GC.SuppressFinalize(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public event EventHandler<RequestEventArgs> RequestComplete;
|
|
||||||
|
|
||||||
public event EventHandler TimedOut;
|
|
||||||
|
|
||||||
public IntPtr GetProcessToken()
|
|
||||||
{
|
|
||||||
return _processToken;
|
|
||||||
}
|
|
||||||
|
|
||||||
public string GetProcessUser()
|
|
||||||
{
|
|
||||||
return _processUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void HostStopped()
|
|
||||||
{
|
|
||||||
_host = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.Infrastructure)]
|
|
||||||
public override object InitializeLifetimeService()
|
|
||||||
{
|
|
||||||
// never expire the license
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// called at the end of request processing
|
|
||||||
// to disconnect the remoting proxy for Connection object
|
|
||||||
// and allow GC to pick it up
|
|
||||||
/// <summary>
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="conn"></param>
|
|
||||||
public void OnRequestEnd(Connection conn)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
OnRequestComplete(conn.Id, conn.RequestLog.Clone(), conn.ResponseLog.Clone());
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
// swallow - we don't want consumer killing the server
|
|
||||||
}
|
|
||||||
RemotingServices.Disconnect(conn);
|
|
||||||
DecrementRequestCount();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Start()
|
|
||||||
{
|
|
||||||
_socket = CreateSocketBindAndListen(AddressFamily.InterNetwork, _ipAddress, _port);
|
|
||||||
|
|
||||||
//start the timer
|
|
||||||
DecrementRequestCount();
|
|
||||||
|
|
||||||
ThreadPool.QueueUserWorkItem(delegate
|
|
||||||
{
|
|
||||||
while (!_shutdownInProgress)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Socket acceptedSocket = _socket.Accept();
|
|
||||||
|
|
||||||
ThreadPool.QueueUserWorkItem(delegate
|
|
||||||
{
|
|
||||||
if (!_shutdownInProgress)
|
|
||||||
{
|
|
||||||
Connection conn = new Connection(this, acceptedSocket);
|
|
||||||
|
|
||||||
if (conn.WaitForRequestBytes() == 0)
|
|
||||||
{
|
|
||||||
conn.WriteErrorAndClose(400);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Host host = GetHost();
|
|
||||||
|
|
||||||
if (host == null)
|
|
||||||
{
|
|
||||||
conn.WriteErrorAndClose(500);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
IncrementRequestCount();
|
|
||||||
host.ProcessRequest(conn);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
Thread.Sleep(100);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
~Server()
|
|
||||||
{
|
|
||||||
Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static Socket CreateSocketBindAndListen(AddressFamily family, IPAddress address, int port)
|
|
||||||
{
|
|
||||||
Socket socket = new Socket(family, SocketType.Stream, ProtocolType.Tcp);
|
|
||||||
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
|
|
||||||
socket.Bind(new IPEndPoint(address, port));
|
|
||||||
socket.Listen((int) SocketOptionName.MaxConnections);
|
|
||||||
return socket;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="virtualPath"></param>
|
|
||||||
/// <param name="physicalPath"></param>
|
|
||||||
/// <param name="hostType"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
/// <remarks>This is Dmitry's hack to enable running outside of GAC</remarks>
|
|
||||||
private object CreateWorkerAppDomainWithHost(string virtualPath, string physicalPath, Type hostType)
|
|
||||||
{
|
|
||||||
// this creates worker app domain in a way that host doesn't need to be in GAC or bin
|
|
||||||
// using BuildManagerHost via private reflection
|
|
||||||
string uniqueAppString = string.Concat(virtualPath, physicalPath).ToLowerInvariant();
|
|
||||||
string appId = (uniqueAppString.GetHashCode()).ToString("x", CultureInfo.InvariantCulture);
|
|
||||||
|
|
||||||
// create BuildManagerHost in the worker app domain
|
|
||||||
//ApplicationManager appManager = ApplicationManager.GetApplicationManager();
|
|
||||||
Type buildManagerHostType = typeof (HttpRuntime).Assembly.GetType("System.Web.Compilation.BuildManagerHost");
|
|
||||||
IRegisteredObject buildManagerHost = _appManager.CreateObject(appId, buildManagerHostType, virtualPath,
|
|
||||||
physicalPath, false);
|
|
||||||
|
|
||||||
// call BuildManagerHost.RegisterAssembly to make Host type loadable in the worker app domain
|
|
||||||
buildManagerHostType.InvokeMember("RegisterAssembly",
|
|
||||||
BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.NonPublic,
|
|
||||||
null,
|
|
||||||
buildManagerHost,
|
|
||||||
new object[] {hostType.Assembly.FullName, hostType.Assembly.Location});
|
|
||||||
|
|
||||||
// create Host in the worker app domain
|
|
||||||
return _appManager.CreateObject(appId, hostType, virtualPath, physicalPath, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DecrementRequestCount()
|
|
||||||
{
|
|
||||||
_requestCount--;
|
|
||||||
|
|
||||||
if (_requestCount < 1)
|
|
||||||
{
|
|
||||||
_requestCount = 0;
|
|
||||||
|
|
||||||
if (_timeoutInterval > 0)
|
|
||||||
{
|
|
||||||
_timer = new Timer(TimeOut, null, _timeoutInterval, Timeout.Infinite);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Host GetHost()
|
|
||||||
{
|
|
||||||
if (_shutdownInProgress)
|
|
||||||
return null;
|
|
||||||
Host host = _host;
|
|
||||||
if (host == null)
|
|
||||||
{
|
|
||||||
#if NET40
|
|
||||||
object obj2 = new object();
|
|
||||||
bool flag = false;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Monitor.Enter(obj2 = _lockObject, ref flag);
|
|
||||||
host = _host;
|
|
||||||
if (host == null)
|
|
||||||
{
|
|
||||||
host = (Host)CreateWorkerAppDomainWithHost(_virtualPath, _physicalPath, typeof(Host));
|
|
||||||
host.Configure(this, _port, _virtualPath, _physicalPath, _requireAuthentication, _disableDirectoryListing);
|
|
||||||
_host = host;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (flag)
|
|
||||||
{
|
|
||||||
Monitor.Exit(obj2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
|
|
||||||
lock (_lockObject)
|
|
||||||
{
|
|
||||||
host = _host;
|
|
||||||
if (host == null)
|
|
||||||
{
|
|
||||||
host = (Host) CreateWorkerAppDomainWithHost(_virtualPath, _physicalPath, typeof (Host));
|
|
||||||
host.Configure(this, _port, _virtualPath, _physicalPath, _requireAuthentication,
|
|
||||||
_disableDirectoryListing);
|
|
||||||
_host = host;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
return host;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void IncrementRequestCount()
|
|
||||||
{
|
|
||||||
_requestCount++;
|
|
||||||
_timer = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void ObtainProcessToken()
|
|
||||||
{
|
|
||||||
if (Interop.ImpersonateSelf(2))
|
|
||||||
{
|
|
||||||
Interop.OpenThreadToken(Interop.GetCurrentThread(), 0xf01ff, true, ref _processToken);
|
|
||||||
Interop.RevertToSelf();
|
|
||||||
// ReSharper disable PossibleNullReferenceException
|
|
||||||
_processUser = WindowsIdentity.GetCurrent().Name;
|
|
||||||
// ReSharper restore PossibleNullReferenceException
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnRequestComplete(Guid id, LogInfo requestLog, LogInfo responseLog)
|
|
||||||
{
|
|
||||||
EventHandler<RequestEventArgs> complete = RequestComplete;
|
|
||||||
|
|
||||||
if (complete != null)
|
|
||||||
{
|
|
||||||
complete(this, new RequestEventArgs(id, requestLog, responseLog));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void ShutDown()
|
|
||||||
{
|
|
||||||
_shutdownInProgress = true;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (_socket != null)
|
|
||||||
{
|
|
||||||
_socket.Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ReSharper disable EmptyGeneralCatchClause
|
|
||||||
catch
|
|
||||||
// ReSharper restore EmptyGeneralCatchClause
|
|
||||||
{
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
_socket = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (_host != null)
|
|
||||||
{
|
|
||||||
_host.Shutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
while (_host != null)
|
|
||||||
{
|
|
||||||
Thread.Sleep(100);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ReSharper disable EmptyGeneralCatchClause
|
|
||||||
catch
|
|
||||||
// ReSharper restore EmptyGeneralCatchClause
|
|
||||||
{
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
_host = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void TimeOut(object ignored)
|
|
||||||
{
|
|
||||||
TimeOut();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void TimeOut()
|
|
||||||
{
|
|
||||||
ShutDown();
|
|
||||||
OnTimeOut();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnTimeOut()
|
|
||||||
{
|
|
||||||
EventHandler handler = TimedOut;
|
|
||||||
if (handler != null) handler(this, EventArgs.Empty);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,100 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) 2010 Sky Sanders. All rights reserved.
|
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.txt file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Specialized;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev.UIComponents
|
|
||||||
{
|
|
||||||
public sealed class CommandLine
|
|
||||||
{
|
|
||||||
#region Fields
|
|
||||||
|
|
||||||
private readonly string[] _arguments;
|
|
||||||
|
|
||||||
private readonly bool _showHelp;
|
|
||||||
private IDictionary _options;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Constructors
|
|
||||||
|
|
||||||
public CommandLine(string[] args)
|
|
||||||
{
|
|
||||||
ArrayList list = new ArrayList();
|
|
||||||
for (int i = 0; i < args.Length; i++)
|
|
||||||
{
|
|
||||||
char ch = args[i][0];
|
|
||||||
if ((ch != '/') && (ch != '-'))
|
|
||||||
{
|
|
||||||
list.Add(args[i]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int index = args[i].IndexOf(':');
|
|
||||||
if (index == -1)
|
|
||||||
{
|
|
||||||
string strA = args[i].Substring(1);
|
|
||||||
if ((string.Compare(strA, "help", StringComparison.OrdinalIgnoreCase) == 0) || strA.Equals("?"))
|
|
||||||
{
|
|
||||||
_showHelp = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Options[strA] = string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Options[args[i].Substring(1, index - 1)] = args[i].Substring(index + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_arguments = (string[]) list.ToArray(typeof (string));
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Properties
|
|
||||||
|
|
||||||
public string[] Arguments
|
|
||||||
{
|
|
||||||
get { return _arguments; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public IDictionary Options
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (_options == null)
|
|
||||||
{
|
|
||||||
_options = new HybridDictionary(true);
|
|
||||||
}
|
|
||||||
return _options;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool ShowHelp
|
|
||||||
{
|
|
||||||
get { return _showHelp; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,443 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) 2010 Sky Sanders. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.txt file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Net;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Command line arguments
|
|
||||||
///
|
|
||||||
/// fixed 5/24/10 - quoted embedded spaces in ToString
|
|
||||||
/// </summary>
|
|
||||||
public class CommandLineArguments
|
|
||||||
{
|
|
||||||
#region Properties
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "ah", DefaultValue = false,
|
|
||||||
HelpText = "If true add entry to Windows hosts file. Requires write permissions to hosts file.")] public
|
|
||||||
bool AddHost;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "a", LongName = "path",
|
|
||||||
HelpText = "Physical location of content.")] public string
|
|
||||||
ApplicationPath;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, LongName = "log", DefaultValue = false, HelpText = "Enable logging.")] public
|
|
||||||
bool EnableLogging;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "h", LongName = "host",
|
|
||||||
HelpText = "Host name used for app root url. Optional unless AddHost is true.")] public string HostName;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "i", LongName = "ip",
|
|
||||||
HelpText = "IP address to listen to. Ignored if IPMode != Specific")] public string IPAddress;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "im", DefaultValue = IPMode.Loopback, HelpText = "",
|
|
||||||
LongName = "ipMode")] public
|
|
||||||
IPMode IPMode;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "v6", DefaultValue = false,
|
|
||||||
HelpText = "If IPMode 'Any' or 'LoopBack' are specified use the V6 address", LongName = "ipV6")] public bool
|
|
||||||
IPv6;
|
|
||||||
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, LongName = "nodirlist", DefaultValue = false,
|
|
||||||
HelpText = "Disable diretory listing")] public bool Nodirlist;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, LongName = "ntlm", DefaultValue = false, HelpText = "Run as current identity"
|
|
||||||
)] public bool Ntlm;
|
|
||||||
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "p", LongName = "port",
|
|
||||||
HelpText = "Port to listen to. Ignored if PortMode=FirstAvailable.", DefaultValue = 0)] public int Port;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "pm", HelpText = "", LongName = "portMode",
|
|
||||||
DefaultValue = PortMode.FirstAvailable)] public PortMode PortMode;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "pre", DefaultValue = 65535, LongName = "highPort",
|
|
||||||
HelpText = "End of port range. Ignored if PortMode != FirstAvailable")] public int PortRangeEnd = 9000;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "prs", DefaultValue = 32768, LongName = "lowPort",
|
|
||||||
HelpText = "Start of port range. Ignored if PortMode != FirstAvailable")] public int PortRangeStart =
|
|
||||||
8080;
|
|
||||||
|
|
||||||
[DefaultArgument(ArgumentType.AtMostOnce, DefaultValue = RunMode.Server, HelpText = "[Server|Hostsfile]")] public RunMode RunMode;
|
|
||||||
[Argument(ArgumentType.AtMostOnce, LongName = "silent", DefaultValue = false, HelpText = "Fail silently")] public bool Silent;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "t", DefaultValue = 0, LongName = "timeout",
|
|
||||||
HelpText = "Length of time, in ms, to wait for a request before stopping the server. 0 = no timeout.")] public int TimeOut;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "v", LongName = "vpath", DefaultValue = "/",
|
|
||||||
HelpText = "Optional. default value '/'"
|
|
||||||
)] public string VirtualPath = "/";
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "vs", DefaultValue = false,
|
|
||||||
HelpText = "If true run in Visual Studio Development Server mode - readonly UI with single option to quit.."
|
|
||||||
)] public
|
|
||||||
bool VisualStudio;
|
|
||||||
|
|
||||||
[Argument(ArgumentType.AtMostOnce, ShortName = "w", DefaultValue = 0, LongName = "wait",
|
|
||||||
HelpText =
|
|
||||||
"Length of time, in ms, to wait for a specific port before throwing an exception or exiting. 0 = don't wait."
|
|
||||||
)] public int WaitForPort;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public string[] ToArgs()
|
|
||||||
{
|
|
||||||
List<string> result = new List<string>();
|
|
||||||
if (RunMode != RunMode.Server)
|
|
||||||
{
|
|
||||||
result.Add(string.Format("{0}", RunMode));
|
|
||||||
}
|
|
||||||
if (!string.IsNullOrEmpty(ApplicationPath))
|
|
||||||
{
|
|
||||||
result.Add(string.Format("/a:{0}", ApplicationPath.Contains("") ? String.Format("\"{0}\"", ApplicationPath) : ApplicationPath));
|
|
||||||
}
|
|
||||||
result.Add(string.Format("/v:{0}", VirtualPath.Contains("") ? String.Format("\"{0}\"", VirtualPath) : VirtualPath));
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(HostName))
|
|
||||||
{
|
|
||||||
result.Add(string.Format("/h:{0}", HostName.Contains("") ? String.Format("\"{0}\"", HostName) : HostName));
|
|
||||||
}
|
|
||||||
if (AddHost)
|
|
||||||
{
|
|
||||||
result.Add("/ah");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IPMode != IPMode.Loopback)
|
|
||||||
{
|
|
||||||
result.Add(string.Format("/im:{0}", IPMode));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(IPAddress))
|
|
||||||
{
|
|
||||||
result.Add(string.Format("/i:{0}", IPAddress));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IPv6)
|
|
||||||
{
|
|
||||||
result.Add("/v6");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (VisualStudio)
|
|
||||||
{
|
|
||||||
result.Add("/vs");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (PortMode != PortMode.FirstAvailable)
|
|
||||||
{
|
|
||||||
result.Add(string.Format("/pm:{0}", PortMode));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Port != 0)
|
|
||||||
{
|
|
||||||
result.Add(string.Format("/p:{0}", Port));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (PortRangeStart != 32768)
|
|
||||||
{
|
|
||||||
result.Add(string.Format("/prs:{0}", PortRangeStart));
|
|
||||||
}
|
|
||||||
if (PortRangeEnd != 65535)
|
|
||||||
{
|
|
||||||
result.Add(string.Format("/pre:{0}", PortRangeEnd));
|
|
||||||
}
|
|
||||||
if (TimeOut > 0)
|
|
||||||
{
|
|
||||||
result.Add(string.Format("/t:{0}", TimeOut));
|
|
||||||
}
|
|
||||||
if (WaitForPort > 0)
|
|
||||||
{
|
|
||||||
result.Add(string.Format("/w:{0}", WaitForPort));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Ntlm)
|
|
||||||
{
|
|
||||||
result.Add("/ntlm");
|
|
||||||
}
|
|
||||||
if (Silent)
|
|
||||||
{
|
|
||||||
result.Add("/silent");
|
|
||||||
}
|
|
||||||
if (Nodirlist)
|
|
||||||
{
|
|
||||||
result.Add("/nodirlist");
|
|
||||||
}
|
|
||||||
if (EnableLogging)
|
|
||||||
{
|
|
||||||
result.Add("/log");
|
|
||||||
}
|
|
||||||
|
|
||||||
return result.ToArray();
|
|
||||||
}
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return string.Join(" ", ToArgs());
|
|
||||||
//StringBuilder sb = new StringBuilder();
|
|
||||||
//if (RunMode != RunMode.Server)
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat("{0}", RunMode);
|
|
||||||
//}
|
|
||||||
//if (!string.IsNullOrEmpty(ApplicationPath))
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat(" /a:{0}", ApplicationPath.Contains(" ") ? String.Format("\"{0}\"", ApplicationPath) : ApplicationPath);
|
|
||||||
//}
|
|
||||||
//sb.AppendFormat(" /v:{0}", VirtualPath.Contains(" ") ? String.Format("\"{0}\"", VirtualPath) : VirtualPath);
|
|
||||||
|
|
||||||
//if (!string.IsNullOrEmpty(HostName))
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat(" /h:{0}", HostName.Contains(" ") ? String.Format("\"{0}\"", HostName) : HostName);
|
|
||||||
//}
|
|
||||||
//if (AddHost)
|
|
||||||
//{
|
|
||||||
// sb.Append(" /ah");
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (IPMode != IPMode.Loopback)
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat(" /im:{0}", IPMode);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (!string.IsNullOrEmpty(IPAddress))
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat(" /i:{0}", IPAddress);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (IPv6)
|
|
||||||
//{
|
|
||||||
// sb.Append(" /v6");
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (VisualStudio)
|
|
||||||
//{
|
|
||||||
// sb.Append(" /vs");
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (PortMode != PortMode.FirstAvailable)
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat(" /pm:{0}", PortMode);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (Port != 0)
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat(" /p:{0}", Port);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (PortRangeStart != 32768)
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat(" /prs:{0}", PortRangeStart);
|
|
||||||
//}
|
|
||||||
//if (PortRangeEnd != 65535)
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat(" /pre:{0}", PortRangeEnd);
|
|
||||||
//}
|
|
||||||
//if (TimeOut > 0)
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat(" /t:{0}", TimeOut);
|
|
||||||
//}
|
|
||||||
//if (WaitForPort > 0)
|
|
||||||
//{
|
|
||||||
// sb.AppendFormat(" /w:{0}", WaitForPort);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (Ntlm)
|
|
||||||
//{
|
|
||||||
// sb.Append(" /ntlm");
|
|
||||||
//}
|
|
||||||
//if (Silent)
|
|
||||||
//{
|
|
||||||
// sb.Append(" /silent");
|
|
||||||
//}
|
|
||||||
//if (Nodirlist)
|
|
||||||
//{
|
|
||||||
// sb.Append(" /nodirlist");
|
|
||||||
//}
|
|
||||||
//if (EnableLogging)
|
|
||||||
//{
|
|
||||||
// sb.Append(" /log");
|
|
||||||
//}
|
|
||||||
//return sb.ToString().Trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// </summary>
|
|
||||||
internal void Validate()
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(ApplicationPath))
|
|
||||||
{
|
|
||||||
throw new CassiniException(SR.ErrApplicationPathIsNull, ErrorField.ApplicationPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ApplicationPath = Path.GetFullPath(ApplicationPath);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
}
|
|
||||||
if (!Directory.Exists(ApplicationPath))
|
|
||||||
{
|
|
||||||
throw new CassiniException(SR.WebdevDirNotExist, ErrorField.ApplicationPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
ApplicationPath = ApplicationPath.Trim('\"').TrimEnd('\\');
|
|
||||||
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(VirtualPath))
|
|
||||||
{
|
|
||||||
VirtualPath = VirtualPath.Trim('\"');
|
|
||||||
VirtualPath = VirtualPath.Trim('/');
|
|
||||||
VirtualPath = "/" + VirtualPath;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
VirtualPath = "/";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!VirtualPath.StartsWith("/"))
|
|
||||||
{
|
|
||||||
VirtualPath = "/" + VirtualPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (AddHost && string.IsNullOrEmpty(HostName))
|
|
||||||
{
|
|
||||||
throw new CassiniException(SR.ErrInvalidHostname, ErrorField.HostName);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
IPAddress = ParseIP(IPMode, IPv6, IPAddress).ToString();
|
|
||||||
|
|
||||||
|
|
||||||
if (VisualStudio) // then STOP HERE.
|
|
||||||
{
|
|
||||||
// It is fortunate that in order to provide api parity with WebDev
|
|
||||||
// we do not need to port scan. Visual Studio balks and refuses to
|
|
||||||
// attach if we monkey around and open ports.
|
|
||||||
Port = Port == 0 ? 80 : Port;
|
|
||||||
PortMode = PortMode.Specific;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
switch (PortMode)
|
|
||||||
{
|
|
||||||
case PortMode.FirstAvailable:
|
|
||||||
|
|
||||||
if (PortRangeStart < 1)
|
|
||||||
{
|
|
||||||
throw new CassiniException(SR.ErrInvalidPortRangeValue, ErrorField.PortRangeStart);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (PortRangeEnd < 1)
|
|
||||||
{
|
|
||||||
throw new CassiniException(SR.ErrInvalidPortRangeValue, ErrorField.PortRangeEnd);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (PortRangeStart > PortRangeEnd)
|
|
||||||
{
|
|
||||||
throw new CassiniException(SR.ErrPortRangeEndMustBeEqualOrGreaterThanPortRangeSta,
|
|
||||||
ErrorField.PortRange);
|
|
||||||
}
|
|
||||||
Port = CassiniNetworkUtils.GetAvailablePort(PortRangeStart, PortRangeEnd,
|
|
||||||
System.Net.IPAddress.Parse(IPAddress), true);
|
|
||||||
|
|
||||||
if (Port == 0)
|
|
||||||
{
|
|
||||||
throw new CassiniException(SR.ErrNoAvailablePortFound, ErrorField.PortRange);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PortMode.Specific:
|
|
||||||
|
|
||||||
if ((Port < 1) || (Port > 0xffff))
|
|
||||||
{
|
|
||||||
throw new CassiniException(SR.ErrPortOutOfRange, ErrorField.Port);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// start waiting....
|
|
||||||
//TODO: design this hack away.... why am I waiting in a validation method?
|
|
||||||
int now = Environment.TickCount;
|
|
||||||
|
|
||||||
// wait until either 1) the specified port is available or 2) the specified amount of time has passed
|
|
||||||
while (Environment.TickCount < now + WaitForPort &&
|
|
||||||
CassiniNetworkUtils.GetAvailablePort(Port, Port, System.Net.IPAddress.Parse(IPAddress), true) !=
|
|
||||||
Port)
|
|
||||||
{
|
|
||||||
Thread.Sleep(100);
|
|
||||||
}
|
|
||||||
|
|
||||||
// is the port available?
|
|
||||||
if (CassiniNetworkUtils.GetAvailablePort(Port, Port, System.Net.IPAddress.Parse(IPAddress), true) !=
|
|
||||||
Port)
|
|
||||||
{
|
|
||||||
throw new CassiniException(SR.ErrPortIsInUse, ErrorField.Port);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
|
|
||||||
throw new CassiniException(SR.ErrInvalidPortMode, ErrorField.None);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Converts CommandLineArgument values to an IP address if possible.
|
|
||||||
/// Throws Exception if not.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="ipmode"></param>
|
|
||||||
/// <param name="v6"></param>
|
|
||||||
/// <param name="ipString"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
/// <exception cref="CassiniException">If IPMode is invalid</exception>
|
|
||||||
/// <exception cref="CassiniException">If IPMode is 'Specific' and ipString is invalid</exception>
|
|
||||||
public static IPAddress ParseIP(IPMode ipmode, bool v6, string ipString)
|
|
||||||
{
|
|
||||||
IPAddress ip;
|
|
||||||
switch (ipmode)
|
|
||||||
{
|
|
||||||
case IPMode.Loopback:
|
|
||||||
|
|
||||||
ip = v6 ? System.Net.IPAddress.IPv6Loopback : System.Net.IPAddress.Loopback;
|
|
||||||
break;
|
|
||||||
case IPMode.Any:
|
|
||||||
ip = v6 ? System.Net.IPAddress.IPv6Any : System.Net.IPAddress.Any;
|
|
||||||
break;
|
|
||||||
case IPMode.Specific:
|
|
||||||
|
|
||||||
if (!System.Net.IPAddress.TryParse(ipString, out ip))
|
|
||||||
{
|
|
||||||
throw new CassiniException(SR.ErrInvalidIPAddress, ErrorField.IPAddress);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new CassiniException(SR.ErrInvalidIPMode, ErrorField.None);
|
|
||||||
}
|
|
||||||
return ip;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,118 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) 2010 Sky Sanders. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.txt file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev
|
|
||||||
{
|
|
||||||
public static class HostsFile
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="ipAddress"></param>
|
|
||||||
/// <param name="hostname"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static int AddHostEntry(string ipAddress, string hostname)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
SetHostsEntry(true, ipAddress, hostname);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
// ReSharper disable EmptyGeneralCatchClause
|
|
||||||
catch
|
|
||||||
// ReSharper restore EmptyGeneralCatchClause
|
|
||||||
{
|
|
||||||
}
|
|
||||||
string executablePath = Assembly.GetExecutingAssembly().Location;
|
|
||||||
return StartElevated(executablePath, string.Format("Hostsfile /ah+ /h:{0} /i:{1}", hostname, ipAddress));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="ipAddress"></param>
|
|
||||||
/// <param name="hostname"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static int RemoveHostEntry(string ipAddress, string hostname)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
SetHostsEntry(false, ipAddress, hostname);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
// ReSharper disable EmptyGeneralCatchClause
|
|
||||||
catch
|
|
||||||
// ReSharper restore EmptyGeneralCatchClause
|
|
||||||
{
|
|
||||||
}
|
|
||||||
string executablePath = Assembly.GetExecutingAssembly().Location;
|
|
||||||
return StartElevated(executablePath, string.Format("Hostsfile /ah- /h:{0} /i:{1}", hostname, ipAddress));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void SetHostsEntry(bool addHost, string ipAddress, string hostname)
|
|
||||||
{
|
|
||||||
// limitation: while windows allows mulitple entries for a single host, we currently allow only one
|
|
||||||
string windir = Environment.GetEnvironmentVariable("SystemRoot") ?? @"c:\windows";
|
|
||||||
string hostsFilePath = Path.Combine(windir, @"system32\drivers\etc\hosts");
|
|
||||||
|
|
||||||
string hostsFileContent = File.ReadAllText(hostsFilePath);
|
|
||||||
|
|
||||||
hostsFileContent = Regex.Replace(hostsFileContent,
|
|
||||||
string.Format(@"\r\n^\s*[\d\w\.:]+\s{0}\s#\sadded\sby\scassini$",
|
|
||||||
hostname), "", RegexOptions.Multiline);
|
|
||||||
|
|
||||||
if (addHost)
|
|
||||||
{
|
|
||||||
hostsFileContent += string.Format("\r\n{0} {1} # added by cassini", ipAddress, hostname);
|
|
||||||
}
|
|
||||||
|
|
||||||
File.WriteAllText(hostsFilePath, hostsFileContent);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int StartElevated(string filename, string args)
|
|
||||||
{
|
|
||||||
ProcessStartInfo startInfo = new ProcessStartInfo
|
|
||||||
{
|
|
||||||
UseShellExecute = true,
|
|
||||||
WorkingDirectory = Environment.CurrentDirectory,
|
|
||||||
FileName = filename,
|
|
||||||
Arguments = args,
|
|
||||||
Verb = "runas"
|
|
||||||
};
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Process p = Process.Start(startInfo);
|
|
||||||
if (p != null)
|
|
||||||
{
|
|
||||||
p.WaitForExit();
|
|
||||||
return p.ExitCode;
|
|
||||||
}
|
|
||||||
return -2;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
return -2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,254 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="WebdevDirListing" xml:space="preserve">
|
|
||||||
<value>Directory Listing -- {0}</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevVwdName" xml:space="preserve">
|
|
||||||
<value>CassiniDev Server</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevServerError" xml:space="preserve">
|
|
||||||
<value>Server Error in '{0}' Application.</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevVersionInfo" xml:space="preserve">
|
|
||||||
<value>Version Information</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevHttpError" xml:space="preserve">
|
|
||||||
<value>HTTP Error {0} - {1}.</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevDirNotExist" xml:space="preserve">
|
|
||||||
<value>The directory '{0}' does not exist.</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevErrorListeningPort" xml:space="preserve">
|
|
||||||
<value>CassiniDev Server failed to start listening on port {0}.
|
|
||||||
Error message:
|
|
||||||
{1}</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevInvalidPort" xml:space="preserve">
|
|
||||||
<value>Invalid port'{0}'</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevName" xml:space="preserve">
|
|
||||||
<value>CassiniDev Server</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevNameWithPort" xml:space="preserve">
|
|
||||||
<value>CassiniDev Server - Port {0}</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevOpenInBrowser" xml:space="preserve">
|
|
||||||
<value>Open in Web Browser</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevRunAspNetLocally" xml:space="preserve">
|
|
||||||
<value>Run ASP.NET applications locally.</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevShowDetail" xml:space="preserve">
|
|
||||||
<value>Show Details</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevStop" xml:space="preserve">
|
|
||||||
<value>Stop</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevUsagestr1" xml:space="preserve">
|
|
||||||
<value>CassiniDev Server Usage:
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevUsagestr2" xml:space="preserve">
|
|
||||||
<value>WebDev.WebServer /port:<port number> /path:<physical path> [/vpath:<virtual path>]
|
|
||||||
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevUsagestr3" xml:space="preserve">
|
|
||||||
<value> port number:
|
|
||||||
[Optional] An unused port number between 1 and 65535.
|
|
||||||
The default is 80 (usable if you do not also have IIS listening on the same port).
|
|
||||||
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevUsagestr4" xml:space="preserve">
|
|
||||||
<value> physical path:
|
|
||||||
A valid directory name where the Web application is rooted.
|
|
||||||
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevUsagestr5" xml:space="preserve">
|
|
||||||
<value> virtual path:
|
|
||||||
[Optional] The virtual path or application root in the form of '/<app name>'.
|
|
||||||
The default is simply '/'.
|
|
||||||
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevUsagestr6" xml:space="preserve">
|
|
||||||
<value>Example:
|
|
||||||
WebDev.WebServer /port:8080 /path:"c:\inetpub\wwwroot\MyApp" /vpath:"/MyApp"
|
|
||||||
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevUsagestr7" xml:space="preserve">
|
|
||||||
<value>You can then access the Web application using a URL of the form:
|
|
||||||
http://localhost:8080/MyApp</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevLogViewerNameWithPort" xml:space="preserve">
|
|
||||||
<value>CassiniDev Server - Port {0} - Log Viewer</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevInMemoryLogging" xml:space="preserve">
|
|
||||||
<value>In memory logging is enabled.
|
|
||||||
|
|
||||||
Events are only captured when the Log window is visible
|
|
||||||
and all data will be lost when this window is closed.
|
|
||||||
|
|
||||||
Install the latest System.Data.SQLite package to enable
|
|
||||||
log persistence.</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevAspNetVersion" xml:space="preserve">
|
|
||||||
<value>ASP.Net Version: {0}</value>
|
|
||||||
</data>
|
|
||||||
<data name="WebdevStart" xml:space="preserve">
|
|
||||||
<value>Start</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrApplicationPathIsNull" xml:space="preserve">
|
|
||||||
<value>ApplicationPath is null</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrFailedToStartCassiniDevServerOnPortError" xml:space="preserve">
|
|
||||||
<value>Failed to start CassiniDev Server on Port:{0} Error:{1} {2}</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrInvalidHostname" xml:space="preserve">
|
|
||||||
<value>Invalid Hostname {0}</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrInvalidIPAddress" xml:space="preserve">
|
|
||||||
<value>Invalid IP Address {0}</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrInvalidIPMode" xml:space="preserve">
|
|
||||||
<value>Invalid IPMode {0}</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrInvalidPortMode" xml:space="preserve">
|
|
||||||
<value>Invalid PortMode</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrInvalidPortRangeValue" xml:space="preserve">
|
|
||||||
<value>Invalid port range value {0}</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrNoAvailablePortFound" xml:space="preserve">
|
|
||||||
<value>No available port found.</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrPortIsInUse" xml:space="preserve">
|
|
||||||
<value>Port is in use {0}</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrPortOutOfRange" xml:space="preserve">
|
|
||||||
<value>Port out of range: {0}</value>
|
|
||||||
</data>
|
|
||||||
<data name="ErrPortRangeEndMustBeEqualOrGreaterThanPortRangeSta" xml:space="preserve">
|
|
||||||
<value>Port range end must be equal or greater than port range start {0} {1}</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
@ -1,164 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) Sky Sanders. All rights reserved.
|
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.htm file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Resources;
|
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev
|
|
||||||
{
|
|
||||||
internal sealed class SR
|
|
||||||
{
|
|
||||||
|
|
||||||
internal const string ErrInvalidIPMode="SR.ErrInvalidIPMode";
|
|
||||||
internal const string ErrInvalidIPAddress = "ErrInvalidIPAddress";
|
|
||||||
internal const string ErrInvalidPortMode = "ErrInvalidPortMode";
|
|
||||||
internal const string ErrPortIsInUse = "ErrPortIsInUse";
|
|
||||||
internal const string ErrNoAvailablePortFound = "ErrNoAvailablePortFound";
|
|
||||||
internal const string ErrPortRangeEndMustBeEqualOrGreaterThanPortRangeSta =
|
|
||||||
"ErrPortRangeEndMustBeEqualOrGreaterThanPortRangeSta";
|
|
||||||
internal const string ErrInvalidPortRangeValue = "ErrInvalidPortRangeValue";
|
|
||||||
internal const string ErrInvalidHostname = "ErrInvalidHostname";
|
|
||||||
|
|
||||||
internal const string ErrFailedToStartCassiniDevServerOnPortError =
|
|
||||||
"ErrFailedToStartCassiniDevServerOnPortError";
|
|
||||||
internal const string ErrApplicationPathIsNull = "ErrApplicationPathIsNull";
|
|
||||||
internal const string ErrPortOutOfRange = "ErrPortOutOfRange";
|
|
||||||
|
|
||||||
internal const string WebdevAspNetVersion = "WebdevAspNetVersion";
|
|
||||||
|
|
||||||
internal const string WebdevDirListing = "WebdevDirListing";
|
|
||||||
|
|
||||||
internal const string WebdevDirNotExist = "WebdevDirNotExist";
|
|
||||||
|
|
||||||
internal const string WebdevErrorListeningPort = "WebdevErrorListeningPort";
|
|
||||||
|
|
||||||
internal const string WebdevHttpError = "WebdevHttpError";
|
|
||||||
|
|
||||||
internal const string WebdevInMemoryLogging = "WebdevInMemoryLogging";
|
|
||||||
|
|
||||||
internal const string WebdevInvalidPort = "WebdevInvalidPort";
|
|
||||||
|
|
||||||
internal const string WebdevLogViewerNameWithPort = "WebdevLogViewerNameWithPort";
|
|
||||||
|
|
||||||
internal const string WebdevName = "WebdevName";
|
|
||||||
|
|
||||||
internal const string WebdevNameWithPort = "WebdevNameWithPort";
|
|
||||||
|
|
||||||
internal const string WebdevOpenInBrowser = "WebdevOpenInBrowser";
|
|
||||||
|
|
||||||
internal const string WebdevRunAspNetLocally = "WebdevRunAspNetLocally";
|
|
||||||
|
|
||||||
internal const string WebdevServerError = "WebdevServerError";
|
|
||||||
|
|
||||||
internal const string WebdevShowDetail = "WebdevShowDetail";
|
|
||||||
|
|
||||||
internal const string WebdevStop = "WebdevStop";
|
|
||||||
|
|
||||||
internal const string WebdevUsagestr1 = "WebdevUsagestr1";
|
|
||||||
|
|
||||||
internal const string WebdevUsagestr2 = "WebdevUsagestr2";
|
|
||||||
|
|
||||||
internal const string WebdevUsagestr3 = "WebdevUsagestr3";
|
|
||||||
|
|
||||||
internal const string WebdevUsagestr4 = "WebdevUsagestr4";
|
|
||||||
|
|
||||||
internal const string WebdevUsagestr5 = "WebdevUsagestr5";
|
|
||||||
|
|
||||||
internal const string WebdevUsagestr6 = "WebdevUsagestr6";
|
|
||||||
|
|
||||||
internal const string WebdevUsagestr7 = "WebdevUsagestr7";
|
|
||||||
|
|
||||||
internal const string WebdevVersionInfo = "WebdevVersionInfo";
|
|
||||||
|
|
||||||
internal const string WebdevVwdName = "WebdevVwdName";
|
|
||||||
|
|
||||||
private static SR _loader;
|
|
||||||
|
|
||||||
private readonly ResourceManager _resources;
|
|
||||||
public const string WebdevStart = "WebdevStart";
|
|
||||||
|
|
||||||
internal SR()
|
|
||||||
{
|
|
||||||
Type t = GetType();
|
|
||||||
Assembly thisAssembly = t.Assembly;
|
|
||||||
string stringResourcesName = t.Namespace + ".Resources.CassiniDev";
|
|
||||||
_resources = new ResourceManager(stringResourcesName, thisAssembly);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static CultureInfo Culture
|
|
||||||
{
|
|
||||||
get { return null; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ResourceManager Resources
|
|
||||||
{
|
|
||||||
get { return GetLoader()._resources; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetString(string name)
|
|
||||||
{
|
|
||||||
SR loader = GetLoader();
|
|
||||||
if (loader == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return loader._resources.GetString(name, Culture);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetString(string name, params object[] args)
|
|
||||||
{
|
|
||||||
SR loader = GetLoader();
|
|
||||||
if (loader == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
string format = loader._resources.GetString(name, Culture);
|
|
||||||
if ((args == null) || (args.Length <= 0))
|
|
||||||
{
|
|
||||||
return format;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < args.Length; i++)
|
|
||||||
{
|
|
||||||
string str2 = args[i] as string;
|
|
||||||
if ((str2 != null) && (str2.Length > 0x400))
|
|
||||||
{
|
|
||||||
args[i] = str2.Substring(0, 0x3fd) + "...";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(format))
|
|
||||||
{
|
|
||||||
return string.Empty;
|
|
||||||
}
|
|
||||||
return string.Format(CultureInfo.CurrentCulture, format, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static SR GetLoader()
|
|
||||||
{
|
|
||||||
if (_loader == null)
|
|
||||||
{
|
|
||||||
SR sr = new SR();
|
|
||||||
Interlocked.CompareExchange(ref _loader, sr, null);
|
|
||||||
}
|
|
||||||
return _loader;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 3.7 KiB |
@ -1,123 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
</root>
|
|
@ -1,834 +0,0 @@
|
|||||||
// **********************************************************************************
|
|
||||||
// CassiniDev - http://cassinidev.codeplex.com
|
|
||||||
//
|
|
||||||
// Copyright (c) Sky Sanders. All rights reserved.
|
|
||||||
//
|
|
||||||
// This source code is subject to terms and conditions of the Microsoft Public
|
|
||||||
// License (Ms-PL). A copy of the license can be found in the license.htm file
|
|
||||||
// included in this distribution.
|
|
||||||
//
|
|
||||||
// You must not remove this notice, or any other, from this software.
|
|
||||||
//
|
|
||||||
// **********************************************************************************
|
|
||||||
|
|
||||||
#region
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
using CassiniDev.ServerLog;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace CassiniDev
|
|
||||||
{
|
|
||||||
public partial class FormView : Form
|
|
||||||
{
|
|
||||||
#region Fields
|
|
||||||
|
|
||||||
private bool _automated;
|
|
||||||
|
|
||||||
private LogView _logForm;
|
|
||||||
|
|
||||||
private RunState _runState;
|
|
||||||
|
|
||||||
private Server _server;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Constructors
|
|
||||||
|
|
||||||
public FormView(Server server)
|
|
||||||
{
|
|
||||||
_server = server;
|
|
||||||
InitializeComponent();
|
|
||||||
InitializeUI();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Properties
|
|
||||||
|
|
||||||
internal bool AddHost
|
|
||||||
{
|
|
||||||
get { return AddHostEntryCheckBox.Checked; }
|
|
||||||
set { AddHostEntryCheckBox.Checked = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal string ApplicationPath
|
|
||||||
{
|
|
||||||
get { return ApplicationPathTextBox.Text; }
|
|
||||||
set { ApplicationPathTextBox.Text = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal string HostName
|
|
||||||
{
|
|
||||||
get { return HostNameTextBox.Text; }
|
|
||||||
set { HostNameTextBox.Text = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal string IPAddress
|
|
||||||
{
|
|
||||||
get { return IPSpecificTextBox.Text; }
|
|
||||||
set { IPSpecificTextBox.Text = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal IPMode IPMode
|
|
||||||
{
|
|
||||||
get { return GetIpMode(); }
|
|
||||||
set { SetIpMode(value); }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
internal bool NoDirList
|
|
||||||
{
|
|
||||||
get { return !directoryBrowsingEnabledToolStripMenuItem.Checked; }
|
|
||||||
set { directoryBrowsingEnabledToolStripMenuItem.Checked = !value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal bool NtmlAuthenticationRequired
|
|
||||||
{
|
|
||||||
get { return nTLMAuthenticationRequiredToolStripMenuItem.Checked; }
|
|
||||||
set { nTLMAuthenticationRequiredToolStripMenuItem.Checked = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal int Port
|
|
||||||
{
|
|
||||||
get { return (int)PortTextBox.Value; }
|
|
||||||
set { PortTextBox.Value = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal PortMode PortMode
|
|
||||||
{
|
|
||||||
get { return GetPortMode(); }
|
|
||||||
set { SetPortMode(value); }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal int PortRangeEnd
|
|
||||||
{
|
|
||||||
get { return (int)PortRangeEndTextBox.Value; }
|
|
||||||
set { PortRangeEndTextBox.Value = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal int PortRangeStart
|
|
||||||
{
|
|
||||||
get { return (int)PortRangeStartTextBox.Value; }
|
|
||||||
set { PortRangeStartTextBox.Value = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal string RootUrl
|
|
||||||
{
|
|
||||||
get { return RootUrlLinkLabel.Text; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
RootUrlLinkLabel.Text = value;
|
|
||||||
RootUrlLinkLabel.Visible = !string.IsNullOrEmpty(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal RunState RunState
|
|
||||||
{
|
|
||||||
get { return _runState; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal int TimeOut
|
|
||||||
{
|
|
||||||
get { return (int)TimeOutNumeric.Value; }
|
|
||||||
set { TimeOutNumeric.Value = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal bool V6
|
|
||||||
{
|
|
||||||
get { return IPV6CheckBox.Checked; }
|
|
||||||
set { IPV6CheckBox.Checked = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal string VirtualPath
|
|
||||||
{
|
|
||||||
get { return VirtualPathTextBox.Text; }
|
|
||||||
set { VirtualPathTextBox.Text = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Protected Methods
|
|
||||||
|
|
||||||
protected override void Dispose(bool disposing)
|
|
||||||
{
|
|
||||||
if (disposing && (components != null))
|
|
||||||
{
|
|
||||||
components.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (disposing && _server != null)
|
|
||||||
{
|
|
||||||
_server.Dispose();
|
|
||||||
_server = null;
|
|
||||||
}
|
|
||||||
base.Dispose(disposing);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// If the form is closing we need to determine whether to exit
|
|
||||||
/// or to minimize to tray.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
protected override void OnClosing(CancelEventArgs e)
|
|
||||||
{
|
|
||||||
// if explicit closure or we are doing nothing then exit app.
|
|
||||||
if (RunState == RunState.Idle)
|
|
||||||
{
|
|
||||||
InvokeStop();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
WindowState = FormWindowState.Minimized;
|
|
||||||
e.Cancel = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//protected override void OnShown(EventArgs e)
|
|
||||||
//{
|
|
||||||
// if (_automated)
|
|
||||||
// {
|
|
||||||
// WindowState = FormWindowState.Minimized;
|
|
||||||
// Hide();
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Private Methods
|
|
||||||
|
|
||||||
|
|
||||||
private void InitializeUI()
|
|
||||||
{
|
|
||||||
ButtonStart.Text = SR.GetString(SR.WebdevStart);
|
|
||||||
toolStripStatusLabel1.Text = SR.GetString(SR.WebdevAspNetVersion, Common.GetAspVersion());
|
|
||||||
|
|
||||||
|
|
||||||
// if sqlite is missing then just silently enable in-memory logging,
|
|
||||||
// hide the enable logging item and enable view log item
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ShowLogButton.Enabled = false;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
toolStripStatusLabel1.Text = SR.GetString(SR.WebdevAspNetVersion, Common.GetAspVersion());
|
|
||||||
|
|
||||||
List<IPAddress> localAddresses = new List<IPAddress>(CassiniNetworkUtils.GetLocalAddresses());
|
|
||||||
localAddresses.Insert(0, System.Net.IPAddress.IPv6Loopback);
|
|
||||||
localAddresses.Insert(0, System.Net.IPAddress.Loopback);
|
|
||||||
|
|
||||||
IPSpecificTextBox.Items.AddRange(localAddresses.Select(i => i.ToString()).ToArray());
|
|
||||||
if (IPSpecificTextBox.Items.Count > 0)
|
|
||||||
{
|
|
||||||
IPSpecificTextBox.SelectedIndex = 0;
|
|
||||||
IPSpecificTextBox.Text = IPSpecificTextBox.Items[0].ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
InvokeSetRunState(RunState.Idle);
|
|
||||||
if (_server == null)
|
|
||||||
{
|
|
||||||
ShowMainForm();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_automated = true;
|
|
||||||
_server.TimedOut += OnTimedOut;
|
|
||||||
IPMode = IPMode.Specific;
|
|
||||||
PortMode = PortMode.Specific;
|
|
||||||
|
|
||||||
UpdateUIFromServer();
|
|
||||||
|
|
||||||
|
|
||||||
InvokeSetRunState(RunState.Running);
|
|
||||||
base.Text = SR.GetString(SR.WebdevNameWithPort, _server.Port);
|
|
||||||
TrayIcon.Visible = true;
|
|
||||||
DisplayTrayTip();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DisplayTrayTip()
|
|
||||||
{
|
|
||||||
|
|
||||||
if (_server==null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
TrayIcon.Text = _server.RootUrl;
|
|
||||||
string trayBaloonText = _server.RootUrl;
|
|
||||||
TrayIcon.ShowBalloonTip(5000, base.Text, trayBaloonText, ToolTipIcon.Info);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateUIFromServer()
|
|
||||||
{
|
|
||||||
base.Text = SR.GetString(SR.WebdevNameWithPort, _server.Port);
|
|
||||||
RootUrl = _server.RootUrl;
|
|
||||||
ApplicationPath = _server.PhysicalPath;
|
|
||||||
IPAddress = _server.IPAddress.ToString();
|
|
||||||
Port = _server.Port;
|
|
||||||
HostName = _server.HostName;
|
|
||||||
NtmlAuthenticationRequired = _server.RequireAuthentication;
|
|
||||||
NoDirList = _server.DisableDirectoryListing;
|
|
||||||
TimeOut = _server.TimeoutInterval;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnResize(EventArgs e)
|
|
||||||
{
|
|
||||||
if (WindowState == FormWindowState.Minimized)
|
|
||||||
{
|
|
||||||
Hide();
|
|
||||||
DisplayTrayTip();
|
|
||||||
ShowInTaskbar = false;
|
|
||||||
}
|
|
||||||
base.OnResize(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void ShowMainForm()
|
|
||||||
{
|
|
||||||
Show();
|
|
||||||
WindowState = FormWindowState.Normal;
|
|
||||||
ShowInTaskbar = true;
|
|
||||||
|
|
||||||
|
|
||||||
//TrayIcon.Visible = false;
|
|
||||||
//ShowInTaskbar = true;
|
|
||||||
|
|
||||||
//TopMost = true;
|
|
||||||
//Focus();
|
|
||||||
//BringToFront();
|
|
||||||
//TopMost = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void InvokeSetRunState(RunState state)
|
|
||||||
{
|
|
||||||
// use invoke, runstate may come from another thread.
|
|
||||||
if (InvokeRequired)
|
|
||||||
{
|
|
||||||
Invoke(new ParameterizedThreadStart(SetRunState), state);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SetRunState(state);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sets RunState and enables/disables form fields accordingly
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="state"></param>
|
|
||||||
private void SetRunState(object state)
|
|
||||||
{
|
|
||||||
_runState = (RunState)state;
|
|
||||||
|
|
||||||
switch (_runState)
|
|
||||||
{
|
|
||||||
case RunState.Idle:
|
|
||||||
if (!_automated)
|
|
||||||
{
|
|
||||||
EnableForm();
|
|
||||||
}
|
|
||||||
// if not automated we are on our way out
|
|
||||||
break;
|
|
||||||
case RunState.Running:
|
|
||||||
DisableForm();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void EnableForm()
|
|
||||||
{
|
|
||||||
ShowLogMenuItem.Enabled = ShowLogButton.Enabled = false;
|
|
||||||
base.Text = SR.GetString(SR.WebdevName);
|
|
||||||
ButtonStart.Text = "&Start";
|
|
||||||
ButtonStart.Enabled = true;
|
|
||||||
nTLMAuthenticationRequiredToolStripMenuItem.Enabled = true;
|
|
||||||
directoryBrowsingEnabledToolStripMenuItem.Enabled = true;
|
|
||||||
ApplicationPathTextBox.Enabled = true;
|
|
||||||
ButtonBrowsePhysicalPath.Enabled = true;
|
|
||||||
VirtualPathTextBox.Enabled = true;
|
|
||||||
HostNameTextBox.Enabled = true;
|
|
||||||
GroupBoxIPAddress.Enabled = true;
|
|
||||||
GroupBoxPort.Enabled = true;
|
|
||||||
LabelHostName.Enabled = true;
|
|
||||||
LabelPhysicalPath.Enabled = true;
|
|
||||||
LabelVPath.Enabled = true;
|
|
||||||
TimeOutNumeric.Enabled = true;
|
|
||||||
RootUrl = null;
|
|
||||||
|
|
||||||
AddHostEntryCheckBox.Enabled = !String.IsNullOrEmpty(HostName);
|
|
||||||
|
|
||||||
switch (IPMode)
|
|
||||||
{
|
|
||||||
case IPMode.Loopback:
|
|
||||||
RadioButtonIPLoopBack_CheckedChanged(null, EventArgs.Empty);
|
|
||||||
break;
|
|
||||||
case IPMode.Any:
|
|
||||||
RadioButtonIPAny_CheckedChanged(null, EventArgs.Empty);
|
|
||||||
break;
|
|
||||||
case IPMode.Specific:
|
|
||||||
RadioButtonIPSpecific_CheckedChanged(null, EventArgs.Empty);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (PortMode)
|
|
||||||
{
|
|
||||||
case PortMode.FirstAvailable:
|
|
||||||
RadioButtonPortFind_CheckedChanged(null, EventArgs.Empty);
|
|
||||||
break;
|
|
||||||
case PortMode.Specific:
|
|
||||||
RadioButtonPortSpecific_CheckedChanged(null, EventArgs.Empty);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
HostNameChanged(null, EventArgs.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DisableForm()
|
|
||||||
{
|
|
||||||
ShowLogMenuItem.Enabled = ShowLogButton.Enabled = true;
|
|
||||||
|
|
||||||
TimeOutNumeric.Enabled = false;
|
|
||||||
ButtonStart.Text = "&Stop";
|
|
||||||
directoryBrowsingEnabledToolStripMenuItem.Enabled = false;
|
|
||||||
nTLMAuthenticationRequiredToolStripMenuItem.Enabled = false;
|
|
||||||
ApplicationPathTextBox.Enabled = false;
|
|
||||||
ButtonBrowsePhysicalPath.Enabled = false;
|
|
||||||
VirtualPathTextBox.Enabled = false;
|
|
||||||
HostNameTextBox.Enabled = false;
|
|
||||||
GroupBoxIPAddress.Enabled = false;
|
|
||||||
GroupBoxPort.Enabled = false;
|
|
||||||
AddHostEntryCheckBox.Enabled = false;
|
|
||||||
LabelHostName.Enabled = false;
|
|
||||||
LabelPhysicalPath.Enabled = false;
|
|
||||||
LabelVPath.Enabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void HostNameChanged()
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(HostName))
|
|
||||||
{
|
|
||||||
AddHostEntryCheckBox.Enabled = false;
|
|
||||||
AddHost = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AddHostEntryCheckBox.Enabled = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void StartStop()
|
|
||||||
{
|
|
||||||
if (RunState != RunState.Running)
|
|
||||||
{
|
|
||||||
DisableForm();
|
|
||||||
Start();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
InvokeStop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private CommandLineArguments GetArgs()
|
|
||||||
{
|
|
||||||
CommandLineArguments args = new CommandLineArguments
|
|
||||||
{
|
|
||||||
AddHost = AddHost,
|
|
||||||
ApplicationPath = ApplicationPath,
|
|
||||||
HostName = HostName,
|
|
||||||
IPAddress = IPAddress,
|
|
||||||
IPMode = IPMode,
|
|
||||||
IPv6 = V6,
|
|
||||||
Port = Port,
|
|
||||||
PortMode = PortMode,
|
|
||||||
PortRangeEnd = PortRangeEnd,
|
|
||||||
PortRangeStart = PortRangeStart,
|
|
||||||
VirtualPath = VirtualPath,
|
|
||||||
TimeOut = TimeOut,
|
|
||||||
WaitForPort = 0,
|
|
||||||
Ntlm = NtmlAuthenticationRequired,
|
|
||||||
Nodirlist = NoDirList
|
|
||||||
};
|
|
||||||
return args;
|
|
||||||
}
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
// use CommandLineArguments as a pre validation tool
|
|
||||||
|
|
||||||
CommandLineArguments args = GetArgs();
|
|
||||||
ClearError();
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
args.Validate();
|
|
||||||
}
|
|
||||||
|
|
||||||
catch (CassiniException ex)
|
|
||||||
{
|
|
||||||
SetError(ex.Field, ex.Message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
IPAddress = args.IPAddress;
|
|
||||||
|
|
||||||
Port = args.Port;
|
|
||||||
|
|
||||||
HostName = args.HostName;
|
|
||||||
|
|
||||||
_server = new Server(args.Port, args.VirtualPath, args.ApplicationPath,
|
|
||||||
System.Net.IPAddress.Parse(args.IPAddress), args.HostName, args.TimeOut, args.Ntlm,
|
|
||||||
args.Nodirlist);
|
|
||||||
|
|
||||||
if (args.AddHost)
|
|
||||||
{
|
|
||||||
HostsFile.AddHostEntry(_server.IPAddress.ToString(), _server.HostName);
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_server.Start();
|
|
||||||
_server.TimedOut += OnTimedOut;
|
|
||||||
UpdateUIFromServer();
|
|
||||||
InvokeSetRunState(RunState.Running);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
SetError(ErrorField.None, ex.Message);
|
|
||||||
_server.Dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The server could be stopped either by user action,
|
|
||||||
/// timeout or exception. If by timeout, the call will be
|
|
||||||
/// coming from another thread in another appdomain far far
|
|
||||||
/// away, so we execise caution and wrap the method that
|
|
||||||
/// actual does the stoppage in this invokable wrapper.
|
|
||||||
/// </summary>
|
|
||||||
private void InvokeStop()
|
|
||||||
{
|
|
||||||
if (InvokeRequired)
|
|
||||||
{
|
|
||||||
Invoke(new MethodInvoker(Stop));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Stop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Stop()
|
|
||||||
{
|
|
||||||
// kill the start button so we don't get a start
|
|
||||||
// signal before completely stopped.
|
|
||||||
ButtonStart.Enabled = false;
|
|
||||||
|
|
||||||
// revert the host file modification, if necessary
|
|
||||||
if (AddHost && RunState == RunState.Running)
|
|
||||||
{
|
|
||||||
HostsFile.RemoveHostEntry(_server.IPAddress.ToString(), _server.HostName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_server != null)
|
|
||||||
{
|
|
||||||
_server.TimedOut -= OnTimedOut;
|
|
||||||
_server.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
RootUrl = string.Empty;
|
|
||||||
|
|
||||||
InvokeSetRunState(RunState.Idle);
|
|
||||||
|
|
||||||
if (_automated)
|
|
||||||
{
|
|
||||||
ExitApp();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static void ExitApp()
|
|
||||||
{
|
|
||||||
Application.Exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static void ShowHelp()
|
|
||||||
{
|
|
||||||
MessageBox.Show("help/about TODO");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ShowLog()
|
|
||||||
{
|
|
||||||
if (_logForm == null || _logForm.IsDisposed)
|
|
||||||
{
|
|
||||||
_logForm = new LogView(_server);
|
|
||||||
}
|
|
||||||
_logForm.Show();
|
|
||||||
_logForm.BringToFront();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void BrowsePath()
|
|
||||||
{
|
|
||||||
FolderBrowserDialog fbd = new FolderBrowserDialog();
|
|
||||||
|
|
||||||
if (fbd.ShowDialog() == DialogResult.OK)
|
|
||||||
{
|
|
||||||
ApplicationPath = fbd.SelectedPath;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void LaunchBrowser()
|
|
||||||
{
|
|
||||||
Process.Start(RootUrlLinkLabel.Text);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private IPMode GetIpMode()
|
|
||||||
{
|
|
||||||
IPMode result;
|
|
||||||
if (IPModeAnyRadioButton.Checked)
|
|
||||||
{
|
|
||||||
result = IPMode.Any;
|
|
||||||
}
|
|
||||||
else if (IPModeLoopBackRadioButton.Checked)
|
|
||||||
{
|
|
||||||
result = IPMode.Loopback;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = IPMode.Specific;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private PortMode GetPortMode()
|
|
||||||
{
|
|
||||||
return PortModeSpecificRadioButton.Checked ? PortMode.Specific : PortMode.FirstAvailable;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void SetIpMode(IPMode value)
|
|
||||||
{
|
|
||||||
switch (value)
|
|
||||||
{
|
|
||||||
case IPMode.Loopback:
|
|
||||||
IPModeLoopBackRadioButton.Checked = true;
|
|
||||||
break;
|
|
||||||
case IPMode.Any:
|
|
||||||
IPModeAnyRadioButton.Checked = true;
|
|
||||||
break;
|
|
||||||
case IPMode.Specific:
|
|
||||||
RadioButtonIPSpecific.Checked = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SetPortMode(PortMode value)
|
|
||||||
{
|
|
||||||
switch (value)
|
|
||||||
{
|
|
||||||
case PortMode.FirstAvailable:
|
|
||||||
PortModeFirstAvailableRadioButton.Checked = true;
|
|
||||||
break;
|
|
||||||
case PortMode.Specific:
|
|
||||||
PortModeSpecificRadioButton.Checked = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void SetError(ErrorField field, string value)
|
|
||||||
{
|
|
||||||
EnableForm();
|
|
||||||
switch (field)
|
|
||||||
{
|
|
||||||
case ErrorField.ApplicationPath:
|
|
||||||
errorProvider1.SetError(ApplicationPathTextBox, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.VirtualPath:
|
|
||||||
errorProvider1.SetError(VirtualPathTextBox, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.HostName:
|
|
||||||
errorProvider1.SetError(HostNameTextBox, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.IsAddHost:
|
|
||||||
errorProvider1.SetError(AddHostEntryCheckBox, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.IPAddress:
|
|
||||||
errorProvider1.SetError(IPSpecificTextBox, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.IPAddressAny:
|
|
||||||
errorProvider1.SetError(IPModeAnyRadioButton, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.IPAddressLoopBack:
|
|
||||||
errorProvider1.SetError(IPModeLoopBackRadioButton, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.Port:
|
|
||||||
errorProvider1.SetError(PortTextBox, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.PortRange:
|
|
||||||
errorProvider1.SetError(PortRangeStartTextBox, value);
|
|
||||||
errorProvider1.SetError(PortRangeEndTextBox, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.PortRangeStart:
|
|
||||||
errorProvider1.SetError(PortRangeStartTextBox, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.PortRangeEnd:
|
|
||||||
errorProvider1.SetError(PortRangeEndTextBox, value);
|
|
||||||
break;
|
|
||||||
case ErrorField.None:
|
|
||||||
MessageBox.Show(value, "Error");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ClearError()
|
|
||||||
{
|
|
||||||
errorProvider1.Clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Handlers
|
|
||||||
|
|
||||||
private void BrowsePath(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
BrowsePath();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void HideMainForm(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void LaunchBrowser(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
LaunchBrowser();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void LaunchBrowser(object sender, LinkLabelLinkClickedEventArgs e)
|
|
||||||
{
|
|
||||||
LaunchBrowser();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ShowHelp(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ShowHelp();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ShowLog(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ShowLog();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ShowMainForm(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ShowMainForm();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Responds to the Start/Stop button
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void StartStop(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
StartStop();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void ExitApp(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ExitApp();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void HostNameChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
HostNameChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// If a timeout value is specifically set and we
|
|
||||||
/// get a timeout event, just exit the application.
|
|
||||||
/// This should always be the case, but will be
|
|
||||||
/// a bit forgiving here and perform a check before
|
|
||||||
/// dumping.
|
|
||||||
/// </summary>
|
|
||||||
private void OnTimedOut(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
InvokeStop();
|
|
||||||
|
|
||||||
if (TimeOut > 0)
|
|
||||||
{
|
|
||||||
ExitApp();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ShowMainForm();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Hinky lookin radios that depend on known state. Could be a source of trouble.
|
|
||||||
|
|
||||||
private void RadioButtonIPAny_CheckedChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
IPSpecificTextBox.Enabled = false;
|
|
||||||
IPV6CheckBox.Enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RadioButtonIPLoopBack_CheckedChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
IPSpecificTextBox.Enabled = false;
|
|
||||||
IPV6CheckBox.Enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RadioButtonIPSpecific_CheckedChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
IPSpecificTextBox.Enabled = true;
|
|
||||||
IPV6CheckBox.Enabled = false;
|
|
||||||
IPV6CheckBox.Checked = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RadioButtonPortFind_CheckedChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
PortTextBox.Enabled = false;
|
|
||||||
PortRangeEndTextBox.Enabled = true;
|
|
||||||
PortRangeStartTextBox.Enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RadioButtonPortSpecific_CheckedChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
PortTextBox.Enabled = true;
|
|
||||||
PortRangeEndTextBox.Enabled = false;
|
|
||||||
PortRangeStartTextBox.Enabled = false;
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,290 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>147, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<data name="HostNameTextBox.ToolTip" xml:space="preserve">
|
|
||||||
<value>The host name to use in place of 'localhost'.
|
|
||||||
This value must be a valid DNS host name or be present in the local hosts file.
|
|
||||||
You may check 'Add hosts entry' to add such an entry to the hosts file for the duration of the hosting session.
|
|
||||||
Adding a hosts entry requires elevated permissions, both upon adding and again upon removal.</value>
|
|
||||||
</data>
|
|
||||||
<data name="AddHostEntryCheckBox.ToolTip" xml:space="preserve">
|
|
||||||
<value>You may check 'Add hosts entry' to add such an entry to the hosts file for the duration of the hosting session.
|
|
||||||
Adding a hosts entry requires elevated permissions, both upon adding and again upon removal.</value>
|
|
||||||
</data>
|
|
||||||
<data name="LabelHostName.ToolTip" xml:space="preserve">
|
|
||||||
<value>The host name to use in place of 'localhost'.
|
|
||||||
This value must be a valid DNS host name or be present in the local hosts file.
|
|
||||||
You may check 'Add hosts entry' to add such an entry to the hosts file for the duration of the hosting session.
|
|
||||||
Adding a hosts entry requires elevated permissions, both upon adding and again upon removal.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<metadata name="errorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>696, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>586, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
AAABAAEAMDAAAAAAAACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAgAoAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAA////AA+V+QDGiDAAj7euAHsfFQDsxn4ATuv/AKrZ/gC7iH8AAeL+AJpRSQBJqs4Az8jEAHO+
|
|
||||||
/gC3w4gA1axVAPnqygCNTRkAIMXvAK+BVQCVvtkAPqH8APTZpwDXsp8A0en9AK5mKQBpx78A06Z7AKqi
|
|
||||||
kgBw3/4AqNXFAE/D/gC6wa4Ax5BjAIk1KwBiruMALJXkAAa4+ABDw9gAjs3/AKloXgDGm5MAcKu6AB3n
|
|
||||||
/wDu7+4A6s5iALbS5gDOlkUAfs7oAKSVYACzb0QAo4Z1AJpLMQCeucEA4bdtAIHBxgC4xdAA48i5ANy2
|
|
||||||
iQAhqukAVcHLAL2lfwCzemsAvoRNADLM/QCpgTsA6MqYACmY+wDw370At5dwAF2z/gCoXj0Aqq6kAAjN
|
|
||||||
+QCPqaAAu3gvAMazlAC+4v8Au5pOANDBogCjVSQAkTodAGLZ/wCV3P4Au6WgAJLJogCqxaEA1KZqAHiz
|
|
||||||
1wCgb1IAr6+UAGXo/wDFk30AycSHAHfN+wDUqYsAqcrYAES95QCF2f4AhSwfADjK5gCOxOYAyrV+ALGa
|
|
||||||
fAC7flkAosCzAGbH/wCRucAAFLf0AJNHPQDCztsAvIZtAF682ADawnUAsohkAKJcTwDH3/IA1KBQAMa7
|
|
||||||
ogCZsKoAoWo+APfgrQC4u78A8tWaAMmSUQDLpJwAmEUhAI09MACSzN4A0Jk6AK5vWQCw1/IAy5huANW/
|
|
||||||
lwDpwHMAzbBlABjL9ADbvKsAhsT0AKV6bgCod10Asod2ALavqQDqx4cA2K96AKRXLwDIjjwAwZGJAODE
|
|
||||||
ngCbXDkAunpDAOW+ewDAhmAAcNT/ALJuMgCe0/8AhsS5AKOoogAluecAosrBAALY/QB/xf4AYsPNAMOo
|
|
||||||
iwC3hVUAppmGADDD7QDgvJcADcD3AL6gdgCW2PQAiLfNAGzq/wC6s7QAorW3AKtlSgCaTkAAwoM3AKqD
|
|
||||||
ZAC4d04A26xaAM+bWwDHqoIAbLa7AMuchQCsZDMA055IALzNhQC0gS8AV8XZAJ5RKQD45b8AZbn+AKVh
|
|
||||||
KAC2cCsA16+UAK9xZQC03v8AtX1zALaRdwCdTSIAoFlFAKyPcQBMvOAAsXxDANCgcgDXrYMAkTwkAMGA
|
|
||||||
LgDMkTIA0KqiAKp2TgC0eGEArqCJAMfk/gB3ws8A0eLyAK14PADp0akAqWsuAMKHVwCtZT8AxoxFAKm8
|
|
||||||
pwDitWIAot7+AKhkVgDHxcoAzZ93AMCviwDAjXcAn8G6AJRFNgChVDgAnWZGAATL+wA/xOMA16txAIEm
|
|
||||||
GgDOnmQAtnM8AMq3mgCxwaYAizMcACSS6AB62/0A5sugALJvTgCqXiUA9N2zAJy6ygCvvK4Alb/BAKpt
|
|
||||||
RAC4uqUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAH2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAABGoPIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEhISEhLUavxz
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyVHCwtyl2tzN/9ikyQAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+SGkx9zzuoO1jwd2J3FLRIfwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAADQvxrD0e6oQxdDQ/fbUGL9qkyb3kgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+pphc7u
|
|
||||||
7jtDF/r6wPpDhnHM8kBMmxqS6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01WmXsrKTuzdDERHAehcXlTht
|
|
||||||
IUbRTMMaUX8AAAAAAAAAAAAAAAAAAAAAAAAAAOOS+cNMTNED0oK1wMAREXoX9+gm2E1Mw8PDGlHQ7wAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAsX/5GhrDw9ED0jf6F3p6ehER2yGpp3fNwxoaGvm/0O8AAAAAAAAAAAAAAAAA
|
|
||||||
AADpf1H5+ZvDTNEDtTeQF3p6ehcXRVATqehGwxr5+VFRyfQAAAAAAAAAAAAAAAAAACNSv1GS+RrDTNF2
|
|
||||||
N+EGfBd8fHx8fIbt7L5Nm8P5UVHJyX9kAAAAAAAAAAAAAAAA7/R/v8lR+cPD0TDudgYGBgYGBoeHhzuj
|
|
||||||
7In/pcMa+VHJf3/QZAAAAAAAAAAAAAAAZNB/v8lRGsPDspHSmJCQBgYGBoeHh5id7Eo4PsMa+VHJf1LQ
|
|
||||||
NQAAAAAAAAAAAADv0FJ/yVH5GsNMz5N2kAYGBgaHh4eHNzdX7KFlTdoa+flRf1JSymQAAAAAAAAAAABk
|
|
||||||
9FJ/yVG6m5fOkwMwmJiYmIeHh4c3NxBeSgpK4EbcGvlRyX9S0AsFAAAAAAAAACNk9FJ/kroaQCLw0dED
|
|
||||||
dpiYmJiHhzc3tYJyEwqho+alGvlRyX9S9HRkAAAAAAAAAGRkUjWSUTObGhxM0dEDMJiYmJg3N7vS0tI3
|
|
||||||
J6EKE+ZGl/lRyX9SUuluAAAAAAAAAO/QNX9/Ufn53UDDTNF2MLU3N7V2MjJCvQO1G6EK7ARGpbpRyX9S
|
|
||||||
9PR0BQAAAAAAI2TpUlJ/UVH5hcPDTFh9AwOTA9KT82pniE8QVuwKoSe33GlRyX9/UoDK7wAAAAAA6dD0
|
|
||||||
UlJ/UVGZ8ZtMfTvf0QMDAwMD5vUlKw8uvOwKoalbFBozyZJ/UsrKIwAAAAAAC+9SUlJ/UZKF+RrwO8+R
|
|
||||||
ttGTMAPRPiQWRAI8PUoKCuy4RlEzMzPef8qwgAAAAAAAse9SUn/JUTMz8c7PlRwc7rbR0dHRqllHR8Eg
|
|
||||||
QaEKCqGfPnm6mTMzSOqwbgAAAAAAbu/00H9/yXC6z92FOxzPzxzfst/wt6zBwcFrU60HLKEmS7O6tLTe
|
|
||||||
3t5IbgAAAAAA6WT00FJ/yZkiz5eF5c7OzxwcHBwct2zBwcFrU1xcrVxBDGj+M7TeSEjq6QAAAAAAZLH0
|
|
||||||
0FJ/sN4iz92Z5eUcOxzOzs7Ot68ODg5rmh6trVweX9azM7TnSEjq6QAAAAAA78pSUlJS1ZLlzxzdYM+o
|
|
||||||
O87Ozs7Ot0kOog5fmh4eHh4eX6/IM5kYSEjq6QAAAAAAZGR09NB/cPhgzxwcqKioqKjOhYWF5VuioqKi
|
|
||||||
X/b2BGwxX2Zo1N6KSOrq6QAAAAAAZGSAyurKcGnEYBwcz6g7qKgchYUil2iLKKKiY2NjeEZGHTYNyN5w
|
|
||||||
SOrKIwAAAAAAZO/QPz/V1XDEYM8cHMTOHKioHCKbGkZmKCgoKGNj/XOS/nOKaUhI6up0ZAAAAAAAAO/j
|
|
||||||
xQkqg13ExGBgHBzOHDvPzt3xm3MVKCgoKFRUgcu/f3+/SEjq6uqxZAAAAAAAAG4/P8Uq57nExMTEYMTO
|
|
||||||
hYWFIiJAGnP7nJycnFRUq8uWf5KS6kjq6jUjAAAAAAAAACPHxz+UcBgYxMRgqKhghYWFIiKXl3OvnJyc
|
|
||||||
nJxUVKbrf97qf+rQNTUjAAAAAAAAAAApx8eUxT86isRgYGDEHIUzIiIiIqWenJycnJzi4p5af5I19PRk
|
|
||||||
NbEjAAAAAAAAAACACQkqxz/nijoYYGAchYWStJkimf5JCAgICAji4q+Nf+p/9PTv6W4AAAAAAAAAAAAA
|
|
||||||
KQmUlMc/XRiKOhi5XZLJ3pnektUdCAgICAgICGGzNUiw0NDpdAAAAAAAAAAAAAAAIwmUKgnHxxgYxIqK
|
|
||||||
ikh/f0i6yYNoCMbGxggIxoSzykjVg+Ox7wAAAAAAAAAAAAAAAG4qfgkJx7kYGMRgYBhd53Bpkr/IhMbG
|
|
||||||
xsbGxsY0jXBdyjUjAAAAAAAAAAAAAAAAAAB005QJCQkYGMRgYLmZ3rBd1dWkL05OTk5OxsaPjtXVdOkA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAxX4qlJQqGBjEuefV6kg1f0hwOU5OTk5OTk57yIODsQAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAMcqKpSUihgY510/4zU1SPhze9fX19fXTk5vyINuAAAAAAAAAAAAAAAAAAAAAAAAAAApKirTiooY
|
|
||||||
x8fF48o16rBdDa5v19fX19d1jm4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgkqKn7TCcfFxSnpsXR0xdU/
|
|
||||||
jlXk2RkZjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCSp+KgnHP8UpKXR0dMp04z/njo4NLQAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvH036UCZTHx8fjdHTj48qAAAAALQAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAALHFCZSUlAkJKbGA7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD////n//8AAP///8f//wAA///4A///
|
|
||||||
AAD//8AB//8AAP//AAA//wAA//wAAB//AAD/8AAAB/8AAP/gAAAD/wAA/8AAAAD/AAD/gAAAAH8AAP8A
|
|
||||||
AAAAfwAA/gAAAAA/AAD8AAAAAB8AAPwAAAAAHwAA+AAAAAAPAAD4AAAAAAcAAPAAAAAABwAA8AAAAAAH
|
|
||||||
AADwAAAAAAMAAOAAAAAAAwAA4AAAAAADAADgAAAAAAMAAOAAAAAAAwAA4AAAAAADAADgAAAAAAMAAOAA
|
|
||||||
AAAAAwAA4AAAAAADAADgAAAAAAMAAOAAAAAAAwAA4AAAAAADAADwAAAAAAMAAPAAAAAABwAA8AAAAAAH
|
|
||||||
AAD4AAAAAAcAAPgAAAAADwAA/AAAAAAfAAD8AAAAAB8AAP4AAAAAPwAA/wAAAAB/AAD/gAAAAP8AAP/A
|
|
||||||
AAAB/wAA/+AAAAP/AAD/8AAAB/8AAP/8AAAH/wAA//8AAHf/AAD//+AB//8AAP///////wAA
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<metadata name="TrayIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>346, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>441, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<data name="TrayIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
AAABAAEAMDAAAAAAAACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAgAoAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAA////AA+V+QDGiDAAj7euAHsfFQDsxn4ATuv/AKrZ/gC7iH8AAeL+AJpRSQBJqs4Az8jEAHO+
|
|
||||||
/gC3w4gA1axVAPnqygCNTRkAIMXvAK+BVQCVvtkAPqH8APTZpwDXsp8A0en9AK5mKQBpx78A06Z7AKqi
|
|
||||||
kgBw3/4AqNXFAE/D/gC6wa4Ax5BjAIk1KwBiruMALJXkAAa4+ABDw9gAjs3/AKloXgDGm5MAcKu6AB3n
|
|
||||||
/wDu7+4A6s5iALbS5gDOlkUAfs7oAKSVYACzb0QAo4Z1AJpLMQCeucEA4bdtAIHBxgC4xdAA48i5ANy2
|
|
||||||
iQAhqukAVcHLAL2lfwCzemsAvoRNADLM/QCpgTsA6MqYACmY+wDw370At5dwAF2z/gCoXj0Aqq6kAAjN
|
|
||||||
+QCPqaAAu3gvAMazlAC+4v8Au5pOANDBogCjVSQAkTodAGLZ/wCV3P4Au6WgAJLJogCqxaEA1KZqAHiz
|
|
||||||
1wCgb1IAr6+UAGXo/wDFk30AycSHAHfN+wDUqYsAqcrYAES95QCF2f4AhSwfADjK5gCOxOYAyrV+ALGa
|
|
||||||
fAC7flkAosCzAGbH/wCRucAAFLf0AJNHPQDCztsAvIZtAF682ADawnUAsohkAKJcTwDH3/IA1KBQAMa7
|
|
||||||
ogCZsKoAoWo+APfgrQC4u78A8tWaAMmSUQDLpJwAmEUhAI09MACSzN4A0Jk6AK5vWQCw1/IAy5huANW/
|
|
||||||
lwDpwHMAzbBlABjL9ADbvKsAhsT0AKV6bgCod10Asod2ALavqQDqx4cA2K96AKRXLwDIjjwAwZGJAODE
|
|
||||||
ngCbXDkAunpDAOW+ewDAhmAAcNT/ALJuMgCe0/8AhsS5AKOoogAluecAosrBAALY/QB/xf4AYsPNAMOo
|
|
||||||
iwC3hVUAppmGADDD7QDgvJcADcD3AL6gdgCW2PQAiLfNAGzq/wC6s7QAorW3AKtlSgCaTkAAwoM3AKqD
|
|
||||||
ZAC4d04A26xaAM+bWwDHqoIAbLa7AMuchQCsZDMA055IALzNhQC0gS8AV8XZAJ5RKQD45b8AZbn+AKVh
|
|
||||||
KAC2cCsA16+UAK9xZQC03v8AtX1zALaRdwCdTSIAoFlFAKyPcQBMvOAAsXxDANCgcgDXrYMAkTwkAMGA
|
|
||||||
LgDMkTIA0KqiAKp2TgC0eGEArqCJAMfk/gB3ws8A0eLyAK14PADp0akAqWsuAMKHVwCtZT8AxoxFAKm8
|
|
||||||
pwDitWIAot7+AKhkVgDHxcoAzZ93AMCviwDAjXcAn8G6AJRFNgChVDgAnWZGAATL+wA/xOMA16txAIEm
|
|
||||||
GgDOnmQAtnM8AMq3mgCxwaYAizMcACSS6AB62/0A5sugALJvTgCqXiUA9N2zAJy6ygCvvK4Alb/BAKpt
|
|
||||||
RAC4uqUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAH2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAABGoPIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEhISEhLUavxz
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyVHCwtyl2tzN/9ikyQAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+SGkx9zzuoO1jwd2J3FLRIfwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAADQvxrD0e6oQxdDQ/fbUGL9qkyb3kgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+pphc7u
|
|
||||||
7jtDF/r6wPpDhnHM8kBMmxqS6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01WmXsrKTuzdDERHAehcXlTht
|
|
||||||
IUbRTMMaUX8AAAAAAAAAAAAAAAAAAAAAAAAAAOOS+cNMTNED0oK1wMAREXoX9+gm2E1Mw8PDGlHQ7wAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAsX/5GhrDw9ED0jf6F3p6ehER2yGpp3fNwxoaGvm/0O8AAAAAAAAAAAAAAAAA
|
|
||||||
AADpf1H5+ZvDTNEDtTeQF3p6ehcXRVATqehGwxr5+VFRyfQAAAAAAAAAAAAAAAAAACNSv1GS+RrDTNF2
|
|
||||||
N+EGfBd8fHx8fIbt7L5Nm8P5UVHJyX9kAAAAAAAAAAAAAAAA7/R/v8lR+cPD0TDudgYGBgYGBoeHhzuj
|
|
||||||
7In/pcMa+VHJf3/QZAAAAAAAAAAAAAAAZNB/v8lRGsPDspHSmJCQBgYGBoeHh5id7Eo4PsMa+VHJf1LQ
|
|
||||||
NQAAAAAAAAAAAADv0FJ/yVH5GsNMz5N2kAYGBgaHh4eHNzdX7KFlTdoa+flRf1JSymQAAAAAAAAAAABk
|
|
||||||
9FJ/yVG6m5fOkwMwmJiYmIeHh4c3NxBeSgpK4EbcGvlRyX9S0AsFAAAAAAAAACNk9FJ/kroaQCLw0dED
|
|
||||||
dpiYmJiHhzc3tYJyEwqho+alGvlRyX9S9HRkAAAAAAAAAGRkUjWSUTObGhxM0dEDMJiYmJg3N7vS0tI3
|
|
||||||
J6EKE+ZGl/lRyX9SUuluAAAAAAAAAO/QNX9/Ufn53UDDTNF2MLU3N7V2MjJCvQO1G6EK7ARGpbpRyX9S
|
|
||||||
9PR0BQAAAAAAI2TpUlJ/UVH5hcPDTFh9AwOTA9KT82pniE8QVuwKoSe33GlRyX9/UoDK7wAAAAAA6dD0
|
|
||||||
UlJ/UVGZ8ZtMfTvf0QMDAwMD5vUlKw8uvOwKoalbFBozyZJ/UsrKIwAAAAAAC+9SUlJ/UZKF+RrwO8+R
|
|
||||||
ttGTMAPRPiQWRAI8PUoKCuy4RlEzMzPef8qwgAAAAAAAse9SUn/JUTMz8c7PlRwc7rbR0dHRqllHR8Eg
|
|
||||||
QaEKCqGfPnm6mTMzSOqwbgAAAAAAbu/00H9/yXC6z92FOxzPzxzfst/wt6zBwcFrU60HLKEmS7O6tLTe
|
|
||||||
3t5IbgAAAAAA6WT00FJ/yZkiz5eF5c7OzxwcHBwct2zBwcFrU1xcrVxBDGj+M7TeSEjq6QAAAAAAZLH0
|
|
||||||
0FJ/sN4iz92Z5eUcOxzOzs7Ot68ODg5rmh6trVweX9azM7TnSEjq6QAAAAAA78pSUlJS1ZLlzxzdYM+o
|
|
||||||
O87Ozs7Ot0kOog5fmh4eHh4eX6/IM5kYSEjq6QAAAAAAZGR09NB/cPhgzxwcqKioqKjOhYWF5VuioqKi
|
|
||||||
X/b2BGwxX2Zo1N6KSOrq6QAAAAAAZGSAyurKcGnEYBwcz6g7qKgchYUil2iLKKKiY2NjeEZGHTYNyN5w
|
|
||||||
SOrKIwAAAAAAZO/QPz/V1XDEYM8cHMTOHKioHCKbGkZmKCgoKGNj/XOS/nOKaUhI6up0ZAAAAAAAAO/j
|
|
||||||
xQkqg13ExGBgHBzOHDvPzt3xm3MVKCgoKFRUgcu/f3+/SEjq6uqxZAAAAAAAAG4/P8Uq57nExMTEYMTO
|
|
||||||
hYWFIiJAGnP7nJycnFRUq8uWf5KS6kjq6jUjAAAAAAAAACPHxz+UcBgYxMRgqKhghYWFIiKXl3OvnJyc
|
|
||||||
nJxUVKbrf97qf+rQNTUjAAAAAAAAAAApx8eUxT86isRgYGDEHIUzIiIiIqWenJycnJzi4p5af5I19PRk
|
|
||||||
NbEjAAAAAAAAAACACQkqxz/nijoYYGAchYWStJkimf5JCAgICAji4q+Nf+p/9PTv6W4AAAAAAAAAAAAA
|
|
||||||
KQmUlMc/XRiKOhi5XZLJ3pnektUdCAgICAgICGGzNUiw0NDpdAAAAAAAAAAAAAAAIwmUKgnHxxgYxIqK
|
|
||||||
ikh/f0i6yYNoCMbGxggIxoSzykjVg+Ox7wAAAAAAAAAAAAAAAG4qfgkJx7kYGMRgYBhd53Bpkr/IhMbG
|
|
||||||
xsbGxsY0jXBdyjUjAAAAAAAAAAAAAAAAAAB005QJCQkYGMRgYLmZ3rBd1dWkL05OTk5OxsaPjtXVdOkA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAxX4qlJQqGBjEuefV6kg1f0hwOU5OTk5OTk57yIODsQAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAMcqKpSUihgY510/4zU1SPhze9fX19fXTk5vyINuAAAAAAAAAAAAAAAAAAAAAAAAAAApKirTiooY
|
|
||||||
x8fF48o16rBdDa5v19fX19d1jm4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgkqKn7TCcfFxSnpsXR0xdU/
|
|
||||||
jlXk2RkZjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCSp+KgnHP8UpKXR0dMp04z/njo4NLQAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvH036UCZTHx8fjdHTj48qAAAAALQAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAALHFCZSUlAkJKbGA7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD////n//8AAP///8f//wAA///4A///
|
|
||||||
AAD//8AB//8AAP//AAA//wAA//wAAB//AAD/8AAAB/8AAP/gAAAD/wAA/8AAAAD/AAD/gAAAAH8AAP8A
|
|
||||||
AAAAfwAA/gAAAAA/AAD8AAAAAB8AAPwAAAAAHwAA+AAAAAAPAAD4AAAAAAcAAPAAAAAABwAA8AAAAAAH
|
|
||||||
AADwAAAAAAMAAOAAAAAAAwAA4AAAAAADAADgAAAAAAMAAOAAAAAAAwAA4AAAAAADAADgAAAAAAMAAOAA
|
|
||||||
AAAAAwAA4AAAAAADAADgAAAAAAMAAOAAAAAAAwAA4AAAAAADAADwAAAAAAMAAPAAAAAABwAA8AAAAAAH
|
|
||||||
AAD4AAAAAAcAAPgAAAAADwAA/AAAAAAfAAD8AAAAAB8AAP4AAAAAPwAA/wAAAAB/AAD/gAAAAP8AAP/A
|
|
||||||
AAAB/wAA/+AAAAP/AAD/8AAAB/8AAP/8AAAH/wAA//8AAHf/AAD//+AB//8AAP///////wAA
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
@ -1,194 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>175, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>267, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
AAABAAEAMDAAAAAAAACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAgAoAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAA////AA+V+QDGiDAAj7euAHsfFQDsxn4ATuv/AKrZ/gC7iH8AAeL+AJpRSQBJqs4Az8jEAHO+
|
|
||||||
/gC3w4gA1axVAPnqygCNTRkAIMXvAK+BVQCVvtkAPqH8APTZpwDXsp8A0en9AK5mKQBpx78A06Z7AKqi
|
|
||||||
kgBw3/4AqNXFAE/D/gC6wa4Ax5BjAIk1KwBiruMALJXkAAa4+ABDw9gAjs3/AKloXgDGm5MAcKu6AB3n
|
|
||||||
/wDu7+4A6s5iALbS5gDOlkUAfs7oAKSVYACzb0QAo4Z1AJpLMQCeucEA4bdtAIHBxgC4xdAA48i5ANy2
|
|
||||||
iQAhqukAVcHLAL2lfwCzemsAvoRNADLM/QCpgTsA6MqYACmY+wDw370At5dwAF2z/gCoXj0Aqq6kAAjN
|
|
||||||
+QCPqaAAu3gvAMazlAC+4v8Au5pOANDBogCjVSQAkTodAGLZ/wCV3P4Au6WgAJLJogCqxaEA1KZqAHiz
|
|
||||||
1wCgb1IAr6+UAGXo/wDFk30AycSHAHfN+wDUqYsAqcrYAES95QCF2f4AhSwfADjK5gCOxOYAyrV+ALGa
|
|
||||||
fAC7flkAosCzAGbH/wCRucAAFLf0AJNHPQDCztsAvIZtAF682ADawnUAsohkAKJcTwDH3/IA1KBQAMa7
|
|
||||||
ogCZsKoAoWo+APfgrQC4u78A8tWaAMmSUQDLpJwAmEUhAI09MACSzN4A0Jk6AK5vWQCw1/IAy5huANW/
|
|
||||||
lwDpwHMAzbBlABjL9ADbvKsAhsT0AKV6bgCod10Asod2ALavqQDqx4cA2K96AKRXLwDIjjwAwZGJAODE
|
|
||||||
ngCbXDkAunpDAOW+ewDAhmAAcNT/ALJuMgCe0/8AhsS5AKOoogAluecAosrBAALY/QB/xf4AYsPNAMOo
|
|
||||||
iwC3hVUAppmGADDD7QDgvJcADcD3AL6gdgCW2PQAiLfNAGzq/wC6s7QAorW3AKtlSgCaTkAAwoM3AKqD
|
|
||||||
ZAC4d04A26xaAM+bWwDHqoIAbLa7AMuchQCsZDMA055IALzNhQC0gS8AV8XZAJ5RKQD45b8AZbn+AKVh
|
|
||||||
KAC2cCsA16+UAK9xZQC03v8AtX1zALaRdwCdTSIAoFlFAKyPcQBMvOAAsXxDANCgcgDXrYMAkTwkAMGA
|
|
||||||
LgDMkTIA0KqiAKp2TgC0eGEArqCJAMfk/gB3ws8A0eLyAK14PADp0akAqWsuAMKHVwCtZT8AxoxFAKm8
|
|
||||||
pwDitWIAot7+AKhkVgDHxcoAzZ93AMCviwDAjXcAn8G6AJRFNgChVDgAnWZGAATL+wA/xOMA16txAIEm
|
|
||||||
GgDOnmQAtnM8AMq3mgCxwaYAizMcACSS6AB62/0A5sugALJvTgCqXiUA9N2zAJy6ygCvvK4Alb/BAKpt
|
|
||||||
RAC4uqUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAH2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAABGoPIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEhISEhLUavxz
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyVHCwtyl2tzN/9ikyQAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+SGkx9zzuoO1jwd2J3FLRIfwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAADQvxrD0e6oQxdDQ/fbUGL9qkyb3kgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+pphc7u
|
|
||||||
7jtDF/r6wPpDhnHM8kBMmxqS6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01WmXsrKTuzdDERHAehcXlTht
|
|
||||||
IUbRTMMaUX8AAAAAAAAAAAAAAAAAAAAAAAAAAOOS+cNMTNED0oK1wMAREXoX9+gm2E1Mw8PDGlHQ7wAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAsX/5GhrDw9ED0jf6F3p6ehER2yGpp3fNwxoaGvm/0O8AAAAAAAAAAAAAAAAA
|
|
||||||
AADpf1H5+ZvDTNEDtTeQF3p6ehcXRVATqehGwxr5+VFRyfQAAAAAAAAAAAAAAAAAACNSv1GS+RrDTNF2
|
|
||||||
N+EGfBd8fHx8fIbt7L5Nm8P5UVHJyX9kAAAAAAAAAAAAAAAA7/R/v8lR+cPD0TDudgYGBgYGBoeHhzuj
|
|
||||||
7In/pcMa+VHJf3/QZAAAAAAAAAAAAAAAZNB/v8lRGsPDspHSmJCQBgYGBoeHh5id7Eo4PsMa+VHJf1LQ
|
|
||||||
NQAAAAAAAAAAAADv0FJ/yVH5GsNMz5N2kAYGBgaHh4eHNzdX7KFlTdoa+flRf1JSymQAAAAAAAAAAABk
|
|
||||||
9FJ/yVG6m5fOkwMwmJiYmIeHh4c3NxBeSgpK4EbcGvlRyX9S0AsFAAAAAAAAACNk9FJ/kroaQCLw0dED
|
|
||||||
dpiYmJiHhzc3tYJyEwqho+alGvlRyX9S9HRkAAAAAAAAAGRkUjWSUTObGhxM0dEDMJiYmJg3N7vS0tI3
|
|
||||||
J6EKE+ZGl/lRyX9SUuluAAAAAAAAAO/QNX9/Ufn53UDDTNF2MLU3N7V2MjJCvQO1G6EK7ARGpbpRyX9S
|
|
||||||
9PR0BQAAAAAAI2TpUlJ/UVH5hcPDTFh9AwOTA9KT82pniE8QVuwKoSe33GlRyX9/UoDK7wAAAAAA6dD0
|
|
||||||
UlJ/UVGZ8ZtMfTvf0QMDAwMD5vUlKw8uvOwKoalbFBozyZJ/UsrKIwAAAAAAC+9SUlJ/UZKF+RrwO8+R
|
|
||||||
ttGTMAPRPiQWRAI8PUoKCuy4RlEzMzPef8qwgAAAAAAAse9SUn/JUTMz8c7PlRwc7rbR0dHRqllHR8Eg
|
|
||||||
QaEKCqGfPnm6mTMzSOqwbgAAAAAAbu/00H9/yXC6z92FOxzPzxzfst/wt6zBwcFrU60HLKEmS7O6tLTe
|
|
||||||
3t5IbgAAAAAA6WT00FJ/yZkiz5eF5c7OzxwcHBwct2zBwcFrU1xcrVxBDGj+M7TeSEjq6QAAAAAAZLH0
|
|
||||||
0FJ/sN4iz92Z5eUcOxzOzs7Ot68ODg5rmh6trVweX9azM7TnSEjq6QAAAAAA78pSUlJS1ZLlzxzdYM+o
|
|
||||||
O87Ozs7Ot0kOog5fmh4eHh4eX6/IM5kYSEjq6QAAAAAAZGR09NB/cPhgzxwcqKioqKjOhYWF5VuioqKi
|
|
||||||
X/b2BGwxX2Zo1N6KSOrq6QAAAAAAZGSAyurKcGnEYBwcz6g7qKgchYUil2iLKKKiY2NjeEZGHTYNyN5w
|
|
||||||
SOrKIwAAAAAAZO/QPz/V1XDEYM8cHMTOHKioHCKbGkZmKCgoKGNj/XOS/nOKaUhI6up0ZAAAAAAAAO/j
|
|
||||||
xQkqg13ExGBgHBzOHDvPzt3xm3MVKCgoKFRUgcu/f3+/SEjq6uqxZAAAAAAAAG4/P8Uq57nExMTEYMTO
|
|
||||||
hYWFIiJAGnP7nJycnFRUq8uWf5KS6kjq6jUjAAAAAAAAACPHxz+UcBgYxMRgqKhghYWFIiKXl3OvnJyc
|
|
||||||
nJxUVKbrf97qf+rQNTUjAAAAAAAAAAApx8eUxT86isRgYGDEHIUzIiIiIqWenJycnJzi4p5af5I19PRk
|
|
||||||
NbEjAAAAAAAAAACACQkqxz/nijoYYGAchYWStJkimf5JCAgICAji4q+Nf+p/9PTv6W4AAAAAAAAAAAAA
|
|
||||||
KQmUlMc/XRiKOhi5XZLJ3pnektUdCAgICAgICGGzNUiw0NDpdAAAAAAAAAAAAAAAIwmUKgnHxxgYxIqK
|
|
||||||
ikh/f0i6yYNoCMbGxggIxoSzykjVg+Ox7wAAAAAAAAAAAAAAAG4qfgkJx7kYGMRgYBhd53Bpkr/IhMbG
|
|
||||||
xsbGxsY0jXBdyjUjAAAAAAAAAAAAAAAAAAB005QJCQkYGMRgYLmZ3rBd1dWkL05OTk5OxsaPjtXVdOkA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAxX4qlJQqGBjEuefV6kg1f0hwOU5OTk5OTk57yIODsQAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAMcqKpSUihgY510/4zU1SPhze9fX19fXTk5vyINuAAAAAAAAAAAAAAAAAAAAAAAAAAApKirTiooY
|
|
||||||
x8fF48o16rBdDa5v19fX19d1jm4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgkqKn7TCcfFxSnpsXR0xdU/
|
|
||||||
jlXk2RkZjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCSp+KgnHP8UpKXR0dMp04z/njo4NLQAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvH036UCZTHx8fjdHTj48qAAAAALQAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAALHFCZSUlAkJKbGA7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD////n//8AAP///8f//wAA///4A///
|
|
||||||
AAD//8AB//8AAP//AAA//wAA//wAAB//AAD/8AAAB/8AAP/gAAAD/wAA/8AAAAD/AAD/gAAAAH8AAP8A
|
|
||||||
AAAAfwAA/gAAAAA/AAD8AAAAAB8AAPwAAAAAHwAA+AAAAAAPAAD4AAAAAAcAAPAAAAAABwAA8AAAAAAH
|
|
||||||
AADwAAAAAAMAAOAAAAAAAwAA4AAAAAADAADgAAAAAAMAAOAAAAAAAwAA4AAAAAADAADgAAAAAAMAAOAA
|
|
||||||
AAAAAwAA4AAAAAADAADgAAAAAAMAAOAAAAAAAwAA4AAAAAADAADwAAAAAAMAAPAAAAAABwAA8AAAAAAH
|
|
||||||
AAD4AAAAAAcAAPgAAAAADwAA/AAAAAAfAAD8AAAAAB8AAP4AAAAAPwAA/wAAAAB/AAD/gAAAAP8AAP/A
|
|
||||||
AAAB/wAA/+AAAAP/AAD/8AAAB/8AAP/8AAAH/wAA//8AAHf/AAD//+AB//8AAP///////wAA
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<configuration>
|
|
||||||
<runtime>
|
|
||||||
<generatePublisherEvidence enabled="false"/>
|
|
||||||
</runtime>
|
|
||||||
</configuration>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<configuration>
|
|
||||||
<runtime>
|
|
||||||
<generatePublisherEvidence enabled="false" />
|
|
||||||
</runtime>
|
|
||||||
</configuration>
|
|
@ -0,0 +1,178 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<section name="moduleProviders" allowLocation="false" allowDefinition="MachineToWebRoot" />
|
||||||
|
<section name="modules" allowDefinition="MachineToApplication" />
|
||||||
|
|
||||||
|
<sectionGroup name="system.webServer">
|
||||||
|
<sectionGroup name="management">
|
||||||
|
<section name="trustedProviders" allowLocation="false" allowDefinition="MachineToWebRoot" />
|
||||||
|
<section name="authentication" allowDefinition="MachineToWebRoot" />
|
||||||
|
<section name="authorization" allowDefinition="MachineToWebRoot" />
|
||||||
|
<section name="dbManager" allowDefinition="MachineToWebRoot" />
|
||||||
|
</sectionGroup>
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
|
||||||
|
<system.webServer>
|
||||||
|
<management>
|
||||||
|
<authentication defaultProvider="ConfigurationAuthenticationProvider">
|
||||||
|
<providers>
|
||||||
|
<add name="ConfigurationAuthenticationProvider" type="Microsoft.Web.Management.Server.ConfigurationAuthenticationProvider, Microsoft.Web.Management, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
</providers>
|
||||||
|
</authentication>
|
||||||
|
|
||||||
|
<authorization defaultProvider="ConfigurationAuthorizationProvider">
|
||||||
|
<providers>
|
||||||
|
<add name="ConfigurationAuthorizationProvider" type="Microsoft.Web.Management.Server.ConfigurationAuthorizationProvider, Microsoft.Web.Management, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
</providers>
|
||||||
|
</authorization>
|
||||||
|
|
||||||
|
<trustedProviders allowUntrustedProviders="false">
|
||||||
|
<add type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<add type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<add type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
</trustedProviders>
|
||||||
|
</management>
|
||||||
|
</system.webServer>
|
||||||
|
|
||||||
|
<moduleProviders>
|
||||||
|
<!-- Server Modules-->
|
||||||
|
<!--add name="FastNav" type="FastNav.FastNavModuleProvider, FastNav, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0f1833fdd3080bcb" /-->
|
||||||
|
<add name="WebObjects" type="Microsoft.Web.Management.Iis.WebObjects.WebObjectsModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Modules" type="Microsoft.Web.Management.Iis.Modules.ModulesModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Handlers" type="Microsoft.Web.Management.Iis.Handlers.HandlersModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="ExtensionRestrictions" type="Microsoft.Web.Management.Iis.Extensions.ExtensionsModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Authentication" type="Microsoft.Web.Management.Iis.Authentication.AuthenticationModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="AnonymousAuthentication" type="Microsoft.Web.Management.Iis.Authentication.AnonymousAuthenticationModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="BasicAuthentication" type="Microsoft.Web.Management.Iis.Authentication.BasicAuthenticationModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="ActiveDirectoryAuthentication" type="Microsoft.Web.Management.Iis.Authentication.ActiveDirectoryAuthenticationModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="WindowsAuthentication" type="Microsoft.Web.Management.Iis.Authentication.WindowsAuthenticationModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="DigestAuthentication" type="Microsoft.Web.Management.Iis.Authentication.DigestAuthenticationModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Authorization" type="Microsoft.Web.Management.Iis.Authorization.AuthorizationModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="IPRestrictions" type="Microsoft.Web.Management.Iis.IPRestrictions.IPRestrictionsModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Ssl" type="Microsoft.Web.Management.Iis.Ssl.SslModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Certificates" type="Microsoft.Web.Management.Iis.Certificates.CertificatesModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="DefaultDocument" type="Microsoft.Web.Management.Iis.DefaultDocument.DefaultDocumentModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="DirectoryBrowse" type="Microsoft.Web.Management.Iis.DirectoryBrowse.DirectoryBrowseModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Compression" type="Microsoft.Web.Management.Iis.Compression.CompressionModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="CustomErrors" type="Microsoft.Web.Management.Iis.CustomErrors.CustomErrorsModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="HttpHeaders" type="Microsoft.Web.Management.Iis.HttpHeaders.HttpHeadersModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
|
||||||
|
<!-- <add name="NativeCaching" type="Microsoft.Web.Management.Iis.Caching.CachingModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> -->
|
||||||
|
|
||||||
|
<add name="HttpRedirect" type="Microsoft.Web.Management.Iis.HttpRedirect.HttpRedirectModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="MimeTypes" type="Microsoft.Web.Management.Iis.MimeTypes.MimeTypesModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="ClassicAsp" type="Microsoft.Web.Management.Iis.ClassicAsp.ClassicAspModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Cgi" type="Microsoft.Web.Management.Iis.Cgi.CgiModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Logging" type="Microsoft.Web.Management.Iis.Logging.LoggingModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FailureTracing" type="Microsoft.Web.Management.Iis.FailureTracing.FailureTracingModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<!-- <add name="WorkerProcesses" type="Microsoft.Web.Management.Iis.WorkerProcesses.WorkerProcessesModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> -->
|
||||||
|
<add name="IsapiFilters" type="Microsoft.Web.Management.Iis.IsapiFilters.IsapiFiltersModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Administrators" type="Microsoft.Web.Management.Features.Administrators.AdministratorsModuleProvider, Microsoft.Web.Management, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Service" type="Microsoft.Web.Management.Features.Service.ServiceModuleProvider, Microsoft.Web.Management, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<!--add name="Delegation" type="Microsoft.Web.Management.Features.Delegation.DelegationModuleProvider, Microsoft.Web.Management, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /-->
|
||||||
|
<!-- <add name="SharedConfig" type="Microsoft.Web.Management.Features.SharedConfig.SharedConfigModuleProvider, Microsoft.Web.Management, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> -->
|
||||||
|
<add name="ConfigurationEditor" type="Microsoft.Web.Management.Iis.ConfigurationEditor.ConfigEditorModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="RequestFiltering" type="Microsoft.Web.Management.Iis.RequestFiltering.RequestFilteringModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FastCgi" type="Microsoft.Web.Management.Iis.FastCgi.FastCgiModuleProvider, Microsoft.Web.Management.Iis, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
|
||||||
|
<!-- ASP.NET Modules-->
|
||||||
|
<add name="FormsAuthentication" type="Microsoft.Web.Management.AspNet.Authentication.FormsAuthenticationModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Impersonation" type="Microsoft.Web.Management.AspNet.Authentication.ImpersonationModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="TrustLevels" type="Microsoft.Web.Management.AspNet.TrustLevels.TrustLevelsModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Roles" type="Microsoft.Web.Management.AspNet.Roles.RolesModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Users" type="Microsoft.Web.Management.AspNet.Users.UsersModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="WebForms" type="Microsoft.Web.Management.AspNet.WebForms.WebFormsModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="AppSettings" type="Microsoft.Web.Management.AspNet.AppSettings.AppSettingsModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="ConnectionStrings" type="Microsoft.Web.Management.AspNet.ConnectionStrings.ConnectionStringsModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Globalization" type="Microsoft.Web.Management.AspNet.Globalization.GlobalizationModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Compilation" type="Microsoft.Web.Management.AspNet.Compilation.CompilationModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="MachineKey" type="Microsoft.Web.Management.AspNet.MachineKey.MachineKeyModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="ProviderConfiguration" type="Microsoft.Web.Management.AspNet.Providers.ProviderConfigurationModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="Profile" type="Microsoft.Web.Management.AspNet.Profile.ProfileModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="SessionState" type="Microsoft.Web.Management.AspNet.SessionState.SessionStateModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="SmtpMail" type="Microsoft.Web.Management.AspNet.SmtpMail.SmtpMailModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="ASPNETAuthorization" type="Microsoft.Web.Management.AspNet.Authorization.AuthorizationModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="ASPNETErrorPages" type="Microsoft.Web.Management.AspNet.ErrorPages.ErrorPagesModuleProvider, Microsoft.Web.Management.Aspnet, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
|
||||||
|
<!-- FTP Modules-->
|
||||||
|
<!-- <add name="FtpSites" type="Microsoft.Web.Management.Ftp.Sites.SitesModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpDirectoryBrowse" type="Microsoft.Web.Management.Ftp.DirectoryBrowse.DirectoryBrowseModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpMessages" type="Microsoft.Web.Management.Ftp.Messages.MessagesModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpUserIsolation" type="Microsoft.Web.Management.Ftp.UserIsolation.UserIsolationModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpSsl" type="Microsoft.Web.Management.Ftp.Ssl.SslModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpAuthorization" type="Microsoft.Web.Management.Ftp.Authorization.AuthorizationModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpIPRestrictions" type="Microsoft.Web.Management.Ftp.IPRestrictions.IPRestrictionsModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpLogging" type="Microsoft.Web.Management.Ftp.Logging.LoggingModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpFirewall" type="Microsoft.Web.Management.Ftp.Firewall.FirewallModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpAuthentication" type="Microsoft.Web.Management.Ftp.Authentication.AuthenticationModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpCurrentSessions" type="Microsoft.Web.Management.Ftp.CurrentSessions.CurrentSessionsModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="FtpRequestFiltering" type="Microsoft.Web.Management.Ftp.RequestFiltering.RequestFilteringModuleProvider, Microsoft.Web.Management.Ftp, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<add name="WebDAV" type="Microsoft.Web.Management.Iis.WebDAV.WebDAVModuleProvider, Microsoft.Web.Management.WebDAV, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
-->
|
||||||
|
<add name="WebDeployment" type="Microsoft.Web.Deployment.UI.PackagingModuleProvider, Microsoft.Web.Deployment.UI.Server, Version=7.0.9.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||||
|
<add name="PlatformInstaller" type="Microsoft.Web.Management.PlatformInstaller.Server.PlatformInstallerModuleProvider, Microsoft.Web.Management.PlatformInstaller.Server, Version=2.0.9.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||||
|
<add name="Rewrite" type="Microsoft.Web.Management.Iis.Rewrite.RewriteModuleProvider, Microsoft.Web.Management.Rewrite, Version=7.2.1.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||||
|
<add name="DBManager" type="Microsoft.Web.Management.DatabaseManager.DBManagerModuleProvider, Microsoft.Web.Management.DatabaseManager, Version=1.0.1.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||||
|
</moduleProviders>
|
||||||
|
|
||||||
|
<!-- For all Sites -->
|
||||||
|
<location path=".">
|
||||||
|
<modules>
|
||||||
|
<add name="WebObjects" />
|
||||||
|
<add name="Modules" />
|
||||||
|
<add name="Handlers" />
|
||||||
|
<add name="ExtensionRestrictions" />
|
||||||
|
<add name="Authentication" />
|
||||||
|
<add name="AnonymousAuthentication" />
|
||||||
|
<add name="BasicAuthentication" />
|
||||||
|
<add name="ActiveDirectoryAuthentication" />
|
||||||
|
<add name="WindowsAuthentication" />
|
||||||
|
<add name="DigestAuthentication" />
|
||||||
|
<add name="Authorization" />
|
||||||
|
<add name="IPRestrictions" />
|
||||||
|
<add name="Ssl" />
|
||||||
|
<add name="Certificates" />
|
||||||
|
<add name="DefaultDocument" />
|
||||||
|
<add name="DirectoryBrowse" />
|
||||||
|
<add name="Compression" />
|
||||||
|
<add name="CustomErrors" />
|
||||||
|
<add name="HttpHeaders" />
|
||||||
|
<!-- <add name="NativeCaching" /> -->
|
||||||
|
<add name="HttpRedirect" />
|
||||||
|
<add name="MimeTypes" />
|
||||||
|
<add name="ClassicAsp" />
|
||||||
|
<add name="Cgi" />
|
||||||
|
<add name="FailureTracing" />
|
||||||
|
<!-- <add name="WorkerProcesses" /> -->
|
||||||
|
<add name="IsapiFilters" />
|
||||||
|
<add name="Administrators" />
|
||||||
|
<add name="Service" />
|
||||||
|
<!--add name="Delegation" /-->
|
||||||
|
<add name="FormsAuthentication" />
|
||||||
|
<add name="Impersonation" />
|
||||||
|
<add name="TrustLevels" />
|
||||||
|
<add name="Roles" />
|
||||||
|
<add name="Users" />
|
||||||
|
<add name="WebForms" />
|
||||||
|
<add name="AppSettings" />
|
||||||
|
<add name="ConnectionStrings" />
|
||||||
|
<add name="Globalization" />
|
||||||
|
<add name="Compilation" />
|
||||||
|
<add name="MachineKey" />
|
||||||
|
<add name="ProviderConfiguration" />
|
||||||
|
<add name="Profile" />
|
||||||
|
<add name="SessionState" />
|
||||||
|
<add name="SmtpMail" />
|
||||||
|
<!-- <add name="WebDAV" /> -->
|
||||||
|
<add name="ASPNETAuthorization" />
|
||||||
|
<add name="ASPNETErrorPages" />
|
||||||
|
<add name="RequestFiltering" />
|
||||||
|
<add name="WebDeployment" />
|
||||||
|
<add name="PlatformInstaller" />
|
||||||
|
<add name="Rewrite" />
|
||||||
|
<add name="DBManager" />
|
||||||
|
</modules>
|
||||||
|
</location>
|
||||||
|
</configuration>
|
@ -0,0 +1,953 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
|
||||||
|
IIS configuration sections.
|
||||||
|
|
||||||
|
For schema documentation, see
|
||||||
|
%IIS_BIN%\config\schema\IIS_schema.xml.
|
||||||
|
|
||||||
|
Please make a backup of this file before making any changes to it.
|
||||||
|
|
||||||
|
NOTE: The following environment variables are available to be used
|
||||||
|
within this file and are understood by the IIS Development Express.
|
||||||
|
|
||||||
|
%IIS_USER_HOME% - The IIS Development Express home directory for the user
|
||||||
|
%IIS_SITES_HOME% - The default home directory for sites
|
||||||
|
%IIS_BIN% - The location of the IIS Development Express binaries
|
||||||
|
%SYSTEMDRIVE% - The drive letter of %IIS_BIN%
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<configuration>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
The <configSections> section controls the registration of sections.
|
||||||
|
Section is the basic unit of deployment, locking, searching and
|
||||||
|
containment for configuration settings.
|
||||||
|
|
||||||
|
Every section belongs to one section group.
|
||||||
|
A section group is a container of logically-related sections.
|
||||||
|
|
||||||
|
Sections cannot be nested.
|
||||||
|
Section groups may be nested.
|
||||||
|
|
||||||
|
<section
|
||||||
|
name="" [Required, Collection Key] [XML name of the section]
|
||||||
|
allowDefinition="Everywhere" [MachineOnly|MachineToApplication|AppHostOnly|Everywhere] [Level where it can be set]
|
||||||
|
overrideModeDefault="Allow" [Allow|Deny] [Default delegation mode]
|
||||||
|
allowLocation="true" [true|false] [Allowed in location tags]
|
||||||
|
/>
|
||||||
|
|
||||||
|
The recommended way to unlock sections is by using a location tag:
|
||||||
|
<location path="Default Web Site" overrideMode="Allow">
|
||||||
|
<system.webServer>
|
||||||
|
<asp />
|
||||||
|
</system.webServer>
|
||||||
|
</location>
|
||||||
|
|
||||||
|
-->
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="system.applicationHost">
|
||||||
|
<section name="applicationPools" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="preloadProviders" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
</sectionGroup>
|
||||||
|
|
||||||
|
<sectionGroup name="system.webServer">
|
||||||
|
<section name="asp" overrideModeDefault="Deny" />
|
||||||
|
<section name="caching" overrideModeDefault="Allow" />
|
||||||
|
<section name="cgi" overrideModeDefault="Deny" />
|
||||||
|
<section name="defaultDocument" overrideModeDefault="Allow" />
|
||||||
|
<section name="directoryBrowse" overrideModeDefault="Allow" />
|
||||||
|
<section name="fastCgi" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="globalModules" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="handlers" overrideModeDefault="Deny" />
|
||||||
|
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="httpErrors" overrideModeDefault="Allow" />
|
||||||
|
<section name="httpLogging" overrideModeDefault="Deny" />
|
||||||
|
<section name="httpProtocol" overrideModeDefault="Allow" />
|
||||||
|
<section name="httpRedirect" overrideModeDefault="Allow" />
|
||||||
|
<section name="httpTracing" overrideModeDefault="Deny" />
|
||||||
|
<section name="isapiFilters" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
|
||||||
|
<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
|
||||||
|
<section name="odbcLogging" overrideModeDefault="Deny" />
|
||||||
|
<sectionGroup name="security">
|
||||||
|
<section name="access" overrideModeDefault="Deny" />
|
||||||
|
<section name="applicationDependencies" overrideModeDefault="Deny" />
|
||||||
|
<sectionGroup name="authentication">
|
||||||
|
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
|
||||||
|
<section name="basicAuthentication" overrideModeDefault="Deny" />
|
||||||
|
<section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
|
||||||
|
<section name="digestAuthentication" overrideModeDefault="Deny" />
|
||||||
|
<section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
|
||||||
|
<section name="windowsAuthentication" overrideModeDefault="Deny" />
|
||||||
|
</sectionGroup>
|
||||||
|
<section name="authorization" overrideModeDefault="Allow" />
|
||||||
|
<section name="ipSecurity" overrideModeDefault="Deny" />
|
||||||
|
<section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
|
<section name="requestFiltering" overrideModeDefault="Allow" />
|
||||||
|
</sectionGroup>
|
||||||
|
<section name="serverRuntime" overrideModeDefault="Deny" />
|
||||||
|
<section name="serverSideInclude" overrideModeDefault="Deny" />
|
||||||
|
<section name="staticContent" overrideModeDefault="Allow" />
|
||||||
|
<sectionGroup name="tracing">
|
||||||
|
<section name="traceFailedRequests" overrideModeDefault="Allow" />
|
||||||
|
<section name="traceProviderDefinitions" overrideModeDefault="Deny" />
|
||||||
|
</sectionGroup>
|
||||||
|
<section name="urlCompression" overrideModeDefault="Allow" />
|
||||||
|
<section name="validation" overrideModeDefault="Allow" />
|
||||||
|
<sectionGroup name="webdav">
|
||||||
|
<section name="globalSettings" overrideModeDefault="Deny" />
|
||||||
|
<section name="authoring" overrideModeDefault="Deny" />
|
||||||
|
<section name="authoringRules" overrideModeDefault="Deny" />
|
||||||
|
</sectionGroup>
|
||||||
|
<sectionGroup name="rewrite">
|
||||||
|
<section name="allowedServerVariables" overrideModeDefault="Deny" />
|
||||||
|
<section name="rules" overrideModeDefault="Allow" />
|
||||||
|
<section name="outboundRules" overrideModeDefault="Allow" />
|
||||||
|
<section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
|
||||||
|
<section name="providers" overrideModeDefault="Allow" />
|
||||||
|
<section name="rewriteMaps" overrideModeDefault="Allow" />
|
||||||
|
</sectionGroup>
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
|
||||||
|
<configProtectedData>
|
||||||
|
<providers>
|
||||||
|
<add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
|
||||||
|
<add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAAKmFQvWHDEETRz8l2bjZlRxIkwcqTFaCUnCLljn3Q1OkesrhEO9YyLyx4bUhsj1/DyShAv7OAFFhXlrlomaornnk5PLeyO4lIXxaiT33yOFUUgxDx4GSaygkqghVV0tO5yQ/XguUBp2juMfZyztnsNa4pLcz7ZNZQ6p4yn9hxwNs=" />
|
||||||
|
<add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA4WoiRJ8KHwzAG8AgejPxEOO4/2Vhkolbwo/8gZeNdUDSD36m55hWv4uC9tr/MlKdnwRLL0NhT50Gccyftqz5xTZ0dg5FtvQhTw/he1NwexTKbV+I4Zrd+sZUqHZTsr7JiEr6OHGXL70qoISW5G2m9U8wKT3caPiDPNj2aAaYPLo=" />
|
||||||
|
</providers>
|
||||||
|
</configProtectedData>
|
||||||
|
|
||||||
|
<system.applicationHost>
|
||||||
|
|
||||||
|
<applicationPools>
|
||||||
|
<!-- <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
||||||
|
<add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
||||||
|
<add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
||||||
|
<add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
||||||
|
<add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />-->
|
||||||
|
<add name="IISExpressAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
||||||
|
<applicationPoolDefaults managedRuntimeLoader="v4.0" >
|
||||||
|
<processModel/>
|
||||||
|
</applicationPoolDefaults>
|
||||||
|
</applicationPools>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
The <listenerAdapters> section defines the protocols with which the
|
||||||
|
Windows Process Activation Service (WAS) binds.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<listenerAdapters>
|
||||||
|
<add name="http" />
|
||||||
|
</listenerAdapters>
|
||||||
|
|
||||||
|
<sites>
|
||||||
|
<site name="NZBDrone" id="1" serverAutoStart="true">
|
||||||
|
<application path="/">
|
||||||
|
<virtualDirectory path="/" physicalPath="%NZBDRONE_PATH%\NZBDrone.Web" />
|
||||||
|
</application>
|
||||||
|
<bindings>
|
||||||
|
<binding protocol="http" bindingInformation="*:8080:" />
|
||||||
|
</bindings>
|
||||||
|
</site>
|
||||||
|
<siteDefaults>
|
||||||
|
<logFile logFormat="W3C" directory="%NZBDRONE_PATH%\Logs\IIS" enabled="false" />
|
||||||
|
<traceFailedRequestsLogging directory="%NZBDRONE_PATH%\Logs\IIS\TraceLogFiles" enabled="true" />
|
||||||
|
</siteDefaults>
|
||||||
|
<applicationDefaults applicationPool="IISExpressAppPool" />
|
||||||
|
<virtualDirectoryDefaults allowSubDirConfig="true" />
|
||||||
|
</sites>
|
||||||
|
|
||||||
|
<webLimits />
|
||||||
|
|
||||||
|
</system.applicationHost>
|
||||||
|
|
||||||
|
<system.webServer>
|
||||||
|
|
||||||
|
<serverRuntime />
|
||||||
|
|
||||||
|
<asp scriptErrorSentToBrowser="true">
|
||||||
|
<cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" />
|
||||||
|
<limits />
|
||||||
|
</asp>
|
||||||
|
|
||||||
|
<caching enabled="true" enableKernelCache="true">
|
||||||
|
</caching>
|
||||||
|
|
||||||
|
<cgi />
|
||||||
|
|
||||||
|
<defaultDocument enabled="true">
|
||||||
|
<files>
|
||||||
|
<add value="Default.htm" />
|
||||||
|
<add value="index.htm" />
|
||||||
|
<add value="index.html" />
|
||||||
|
<add value="iisstart.htm" />
|
||||||
|
<add value="default.aspx" />
|
||||||
|
</files>
|
||||||
|
</defaultDocument>
|
||||||
|
|
||||||
|
<directoryBrowse enabled="false" />
|
||||||
|
|
||||||
|
<fastCgi />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
The <globalModules> section defines all native-code modules.
|
||||||
|
To enable a module, specify it in the <modules> section.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<globalModules>
|
||||||
|
<add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" />
|
||||||
|
<!-- <add name="FileCacheModule" image="%IIS_BIN%\cachfile.dll" /> -->
|
||||||
|
<add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" />
|
||||||
|
<!-- <add name="HttpCacheModule" image="%IIS_BIN%\cachhttp.dll" /> -->
|
||||||
|
<add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" />
|
||||||
|
<add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" />
|
||||||
|
<add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" />
|
||||||
|
<add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" />
|
||||||
|
<add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" />
|
||||||
|
<add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" />
|
||||||
|
<add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" />
|
||||||
|
<add name="StaticFileModule" image="%IIS_BIN%\static.dll" />
|
||||||
|
<add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" />
|
||||||
|
<add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" />
|
||||||
|
<add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" />
|
||||||
|
<add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" />
|
||||||
|
<add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" />
|
||||||
|
<!-- <add name="DigestAuthenticationModule" image="%IIS_BIN%\authmd5.dll" /> -->
|
||||||
|
<add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" />
|
||||||
|
<add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" />
|
||||||
|
<add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" />
|
||||||
|
<add name="CustomLoggingModule" image="%IIS_BIN%\logcust.dll" />
|
||||||
|
<add name="CustomErrorModule" image="%IIS_BIN%\custerr.dll" />
|
||||||
|
<add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" />
|
||||||
|
<!-- <add name="TracingModule" image="%IIS_BIN%\iisetw.dll" /> -->
|
||||||
|
<add name="FailedRequestsTracingModule" image="%IIS_BIN%\iisfreb.dll" />
|
||||||
|
<add name="RequestMonitorModule" image="%IIS_BIN%\iisreqs.dll" />
|
||||||
|
<add name="IsapiModule" image="%IIS_BIN%\isapi.dll" />
|
||||||
|
<add name="IsapiFilterModule" image="%IIS_BIN%\filter.dll" />
|
||||||
|
<add name="CgiModule" image="%IIS_BIN%\cgi.dll" />
|
||||||
|
<add name="FastCgiModule" image="%IIS_BIN%\iisfcgi.dll" />
|
||||||
|
<!-- <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> -->
|
||||||
|
<add name="RewriteModule" image="%IIS_BIN%\rewrite.dll" />
|
||||||
|
<add name="ConfigurationValidationModule" image="%IIS_BIN%\validcfg.dll" />
|
||||||
|
<add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" />
|
||||||
|
<add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" />
|
||||||
|
<add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
|
||||||
|
</globalModules>
|
||||||
|
|
||||||
|
<httpCompression directory="%TEMP%\iisexpress\IIS Temporary Compressed Files">
|
||||||
|
<scheme name="gzip" dll="%IIS_BIN%\gzip.dll" />
|
||||||
|
<dynamicTypes>
|
||||||
|
<add mimeType="text/*" enabled="true" />
|
||||||
|
<add mimeType="message/*" enabled="true" />
|
||||||
|
<add mimeType="application/x-javascript" enabled="true" />
|
||||||
|
<add mimeType="*/*" enabled="false" />
|
||||||
|
</dynamicTypes>
|
||||||
|
<staticTypes>
|
||||||
|
<add mimeType="text/*" enabled="true" />
|
||||||
|
<add mimeType="message/*" enabled="true" />
|
||||||
|
<add mimeType="application/x-javascript" enabled="true" />
|
||||||
|
<add mimeType="application/atom+xml" enabled="true" />
|
||||||
|
<add mimeType="application/xaml+xml" enabled="true" />
|
||||||
|
<add mimeType="*/*" enabled="false" />
|
||||||
|
</staticTypes>
|
||||||
|
</httpCompression>
|
||||||
|
|
||||||
|
<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
|
||||||
|
<error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" />
|
||||||
|
<error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" />
|
||||||
|
<error statusCode="404" prefixLanguageFilePath="%IIS_BIN%\custerr" path="404.htm" />
|
||||||
|
<error statusCode="405" prefixLanguageFilePath="%IIS_BIN%\custerr" path="405.htm" />
|
||||||
|
<error statusCode="406" prefixLanguageFilePath="%IIS_BIN%\custerr" path="406.htm" />
|
||||||
|
<error statusCode="412" prefixLanguageFilePath="%IIS_BIN%\custerr" path="412.htm" />
|
||||||
|
<error statusCode="500" prefixLanguageFilePath="%IIS_BIN%\custerr" path="500.htm" />
|
||||||
|
<error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" />
|
||||||
|
<error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" />
|
||||||
|
</httpErrors>
|
||||||
|
|
||||||
|
<httpLogging dontLog="false" />
|
||||||
|
|
||||||
|
<httpProtocol>
|
||||||
|
<customHeaders>
|
||||||
|
<clear />
|
||||||
|
<add name="X-Powered-By" value="ASP.NET" />
|
||||||
|
</customHeaders>
|
||||||
|
<redirectHeaders>
|
||||||
|
<clear />
|
||||||
|
</redirectHeaders>
|
||||||
|
</httpProtocol>
|
||||||
|
|
||||||
|
<httpRedirect enabled="false" />
|
||||||
|
|
||||||
|
<httpTracing>
|
||||||
|
</httpTracing>
|
||||||
|
|
||||||
|
<isapiFilters>
|
||||||
|
<filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" />
|
||||||
|
<filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" />
|
||||||
|
<filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" />
|
||||||
|
</isapiFilters>
|
||||||
|
|
||||||
|
<odbcLogging />
|
||||||
|
|
||||||
|
<security>
|
||||||
|
|
||||||
|
<access sslFlags="None" />
|
||||||
|
|
||||||
|
<applicationDependencies>
|
||||||
|
<application name="Active Server Pages" groupId="ASP" />
|
||||||
|
</applicationDependencies>
|
||||||
|
|
||||||
|
<authentication>
|
||||||
|
|
||||||
|
<anonymousAuthentication enabled="true" userName="" />
|
||||||
|
|
||||||
|
<basicAuthentication enabled="false" />
|
||||||
|
|
||||||
|
<clientCertificateMappingAuthentication enabled="false" />
|
||||||
|
|
||||||
|
<digestAuthentication enabled="false" />
|
||||||
|
|
||||||
|
<iisClientCertificateMappingAuthentication enabled="false">
|
||||||
|
</iisClientCertificateMappingAuthentication>
|
||||||
|
|
||||||
|
<windowsAuthentication enabled="false">
|
||||||
|
<providers>
|
||||||
|
<add value="Negotiate" />
|
||||||
|
<add value="NTLM" />
|
||||||
|
</providers>
|
||||||
|
</windowsAuthentication>
|
||||||
|
|
||||||
|
</authentication>
|
||||||
|
|
||||||
|
<authorization>
|
||||||
|
<add accessType="Allow" users="*" />
|
||||||
|
</authorization>
|
||||||
|
|
||||||
|
<ipSecurity allowUnlisted="true" />
|
||||||
|
|
||||||
|
<isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true">
|
||||||
|
<add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
|
||||||
|
</isapiCgiRestriction>
|
||||||
|
|
||||||
|
<requestFiltering>
|
||||||
|
<fileExtensions allowUnlisted="true" applyToWebDAV="true">
|
||||||
|
<add fileExtension=".asa" allowed="false" />
|
||||||
|
<add fileExtension=".asax" allowed="false" />
|
||||||
|
<add fileExtension=".ascx" allowed="false" />
|
||||||
|
<add fileExtension=".master" allowed="false" />
|
||||||
|
<add fileExtension=".skin" allowed="false" />
|
||||||
|
<add fileExtension=".browser" allowed="false" />
|
||||||
|
<add fileExtension=".sitemap" allowed="false" />
|
||||||
|
<add fileExtension=".config" allowed="false" />
|
||||||
|
<add fileExtension=".cs" allowed="false" />
|
||||||
|
<add fileExtension=".csproj" allowed="false" />
|
||||||
|
<add fileExtension=".vb" allowed="false" />
|
||||||
|
<add fileExtension=".vbproj" allowed="false" />
|
||||||
|
<add fileExtension=".webinfo" allowed="false" />
|
||||||
|
<add fileExtension=".licx" allowed="false" />
|
||||||
|
<add fileExtension=".resx" allowed="false" />
|
||||||
|
<add fileExtension=".resources" allowed="false" />
|
||||||
|
<add fileExtension=".mdb" allowed="false" />
|
||||||
|
<add fileExtension=".vjsproj" allowed="false" />
|
||||||
|
<add fileExtension=".java" allowed="false" />
|
||||||
|
<add fileExtension=".jsl" allowed="false" />
|
||||||
|
<add fileExtension=".ldb" allowed="false" />
|
||||||
|
<add fileExtension=".dsdgm" allowed="false" />
|
||||||
|
<add fileExtension=".ssdgm" allowed="false" />
|
||||||
|
<add fileExtension=".lsad" allowed="false" />
|
||||||
|
<add fileExtension=".ssmap" allowed="false" />
|
||||||
|
<add fileExtension=".cd" allowed="false" />
|
||||||
|
<add fileExtension=".dsprototype" allowed="false" />
|
||||||
|
<add fileExtension=".lsaprototype" allowed="false" />
|
||||||
|
<add fileExtension=".sdm" allowed="false" />
|
||||||
|
<add fileExtension=".sdmDocument" allowed="false" />
|
||||||
|
<add fileExtension=".mdf" allowed="false" />
|
||||||
|
<add fileExtension=".ldf" allowed="false" />
|
||||||
|
<add fileExtension=".ad" allowed="false" />
|
||||||
|
<add fileExtension=".dd" allowed="false" />
|
||||||
|
<add fileExtension=".ldd" allowed="false" />
|
||||||
|
<add fileExtension=".sd" allowed="false" />
|
||||||
|
<add fileExtension=".adprototype" allowed="false" />
|
||||||
|
<add fileExtension=".lddprototype" allowed="false" />
|
||||||
|
<add fileExtension=".exclude" allowed="false" />
|
||||||
|
<add fileExtension=".refresh" allowed="false" />
|
||||||
|
<add fileExtension=".compiled" allowed="false" />
|
||||||
|
<add fileExtension=".msgx" allowed="false" />
|
||||||
|
<add fileExtension=".vsdisco" allowed="false" />
|
||||||
|
<add fileExtension=".rules" allowed="false" />
|
||||||
|
</fileExtensions>
|
||||||
|
<verbs allowUnlisted="true" applyToWebDAV="true" />
|
||||||
|
<hiddenSegments applyToWebDAV="true">
|
||||||
|
<add segment="web.config" />
|
||||||
|
<add segment="bin" />
|
||||||
|
<add segment="App_code" />
|
||||||
|
<add segment="App_GlobalResources" />
|
||||||
|
<add segment="App_LocalResources" />
|
||||||
|
<add segment="App_WebReferences" />
|
||||||
|
<add segment="App_Data" />
|
||||||
|
<add segment="App_Browsers" />
|
||||||
|
</hiddenSegments>
|
||||||
|
</requestFiltering>
|
||||||
|
|
||||||
|
</security>
|
||||||
|
|
||||||
|
<serverSideInclude ssiExecDisable="false" />
|
||||||
|
|
||||||
|
<staticContent lockAttributes="isDocFooterFileName">
|
||||||
|
<mimeMap fileExtension=".323" mimeType="text/h323" />
|
||||||
|
<mimeMap fileExtension=".aaf" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".aca" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".accdb" mimeType="application/msaccess" />
|
||||||
|
<mimeMap fileExtension=".accde" mimeType="application/msaccess" />
|
||||||
|
<mimeMap fileExtension=".accdt" mimeType="application/msaccess" />
|
||||||
|
<mimeMap fileExtension=".acx" mimeType="application/internet-property-stream" />
|
||||||
|
<mimeMap fileExtension=".afm" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".ai" mimeType="application/postscript" />
|
||||||
|
<mimeMap fileExtension=".aif" mimeType="audio/x-aiff" />
|
||||||
|
<mimeMap fileExtension=".aifc" mimeType="audio/aiff" />
|
||||||
|
<mimeMap fileExtension=".aiff" mimeType="audio/aiff" />
|
||||||
|
<mimeMap fileExtension=".application" mimeType="application/x-ms-application" />
|
||||||
|
<mimeMap fileExtension=".art" mimeType="image/x-jg" />
|
||||||
|
<mimeMap fileExtension=".asd" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".asf" mimeType="video/x-ms-asf" />
|
||||||
|
<mimeMap fileExtension=".asi" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".asm" mimeType="text/plain" />
|
||||||
|
<mimeMap fileExtension=".asr" mimeType="video/x-ms-asf" />
|
||||||
|
<mimeMap fileExtension=".asx" mimeType="video/x-ms-asf" />
|
||||||
|
<mimeMap fileExtension=".atom" mimeType="application/atom+xml" />
|
||||||
|
<mimeMap fileExtension=".au" mimeType="audio/basic" />
|
||||||
|
<mimeMap fileExtension=".avi" mimeType="video/x-msvideo" />
|
||||||
|
<mimeMap fileExtension=".axs" mimeType="application/olescript" />
|
||||||
|
<mimeMap fileExtension=".bas" mimeType="text/plain" />
|
||||||
|
<mimeMap fileExtension=".bcpio" mimeType="application/x-bcpio" />
|
||||||
|
<mimeMap fileExtension=".bin" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".bmp" mimeType="image/bmp" />
|
||||||
|
<mimeMap fileExtension=".c" mimeType="text/plain" />
|
||||||
|
<mimeMap fileExtension=".cab" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".calx" mimeType="application/vnd.ms-office.calx" />
|
||||||
|
<mimeMap fileExtension=".cat" mimeType="application/vnd.ms-pki.seccat" />
|
||||||
|
<mimeMap fileExtension=".cdf" mimeType="application/x-cdf" />
|
||||||
|
<mimeMap fileExtension=".chm" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".class" mimeType="application/x-java-applet" />
|
||||||
|
<mimeMap fileExtension=".clp" mimeType="application/x-msclip" />
|
||||||
|
<mimeMap fileExtension=".cmx" mimeType="image/x-cmx" />
|
||||||
|
<mimeMap fileExtension=".cnf" mimeType="text/plain" />
|
||||||
|
<mimeMap fileExtension=".cod" mimeType="image/cis-cod" />
|
||||||
|
<mimeMap fileExtension=".cpio" mimeType="application/x-cpio" />
|
||||||
|
<mimeMap fileExtension=".cpp" mimeType="text/plain" />
|
||||||
|
<mimeMap fileExtension=".crd" mimeType="application/x-mscardfile" />
|
||||||
|
<mimeMap fileExtension=".crl" mimeType="application/pkix-crl" />
|
||||||
|
<mimeMap fileExtension=".crt" mimeType="application/x-x509-ca-cert" />
|
||||||
|
<mimeMap fileExtension=".csh" mimeType="application/x-csh" />
|
||||||
|
<mimeMap fileExtension=".css" mimeType="text/css" />
|
||||||
|
<mimeMap fileExtension=".csv" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".cur" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".dcr" mimeType="application/x-director" />
|
||||||
|
<mimeMap fileExtension=".deploy" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".der" mimeType="application/x-x509-ca-cert" />
|
||||||
|
<mimeMap fileExtension=".dib" mimeType="image/bmp" />
|
||||||
|
<mimeMap fileExtension=".dir" mimeType="application/x-director" />
|
||||||
|
<mimeMap fileExtension=".disco" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".dll" mimeType="application/x-msdownload" />
|
||||||
|
<mimeMap fileExtension=".dll.config" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".dlm" mimeType="text/dlm" />
|
||||||
|
<mimeMap fileExtension=".doc" mimeType="application/msword" />
|
||||||
|
<mimeMap fileExtension=".docm" mimeType="application/vnd.ms-word.document.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".docx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
|
||||||
|
<mimeMap fileExtension=".dot" mimeType="application/msword" />
|
||||||
|
<mimeMap fileExtension=".dotm" mimeType="application/vnd.ms-word.template.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".dotx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.template" />
|
||||||
|
<mimeMap fileExtension=".dsp" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".dtd" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".dvi" mimeType="application/x-dvi" />
|
||||||
|
<mimeMap fileExtension=".dwf" mimeType="drawing/x-dwf" />
|
||||||
|
<mimeMap fileExtension=".dwp" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".dxr" mimeType="application/x-director" />
|
||||||
|
<mimeMap fileExtension=".eml" mimeType="message/rfc822" />
|
||||||
|
<mimeMap fileExtension=".emz" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".eot" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".eps" mimeType="application/postscript" />
|
||||||
|
<mimeMap fileExtension=".etx" mimeType="text/x-setext" />
|
||||||
|
<mimeMap fileExtension=".evy" mimeType="application/envoy" />
|
||||||
|
<mimeMap fileExtension=".exe" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".exe.config" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".fdf" mimeType="application/vnd.fdf" />
|
||||||
|
<mimeMap fileExtension=".fif" mimeType="application/fractals" />
|
||||||
|
<mimeMap fileExtension=".fla" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".flr" mimeType="x-world/x-vrml" />
|
||||||
|
<mimeMap fileExtension=".flv" mimeType="video/x-flv" />
|
||||||
|
<mimeMap fileExtension=".gif" mimeType="image/gif" />
|
||||||
|
<mimeMap fileExtension=".gtar" mimeType="application/x-gtar" />
|
||||||
|
<mimeMap fileExtension=".gz" mimeType="application/x-gzip" />
|
||||||
|
<mimeMap fileExtension=".h" mimeType="text/plain" />
|
||||||
|
<mimeMap fileExtension=".hdf" mimeType="application/x-hdf" />
|
||||||
|
<mimeMap fileExtension=".hdml" mimeType="text/x-hdml" />
|
||||||
|
<mimeMap fileExtension=".hhc" mimeType="application/x-oleobject" />
|
||||||
|
<mimeMap fileExtension=".hhk" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".hhp" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".hlp" mimeType="application/winhlp" />
|
||||||
|
<mimeMap fileExtension=".hqx" mimeType="application/mac-binhex40" />
|
||||||
|
<mimeMap fileExtension=".hta" mimeType="application/hta" />
|
||||||
|
<mimeMap fileExtension=".htc" mimeType="text/x-component" />
|
||||||
|
<mimeMap fileExtension=".htm" mimeType="text/html" />
|
||||||
|
<mimeMap fileExtension=".html" mimeType="text/html" />
|
||||||
|
<mimeMap fileExtension=".htt" mimeType="text/webviewhtml" />
|
||||||
|
<mimeMap fileExtension=".hxt" mimeType="text/html" />
|
||||||
|
<mimeMap fileExtension=".ical" mimeType="text/calendar" />
|
||||||
|
<mimeMap fileExtension=".icalendar" mimeType="text/calendar" />
|
||||||
|
<mimeMap fileExtension=".ico" mimeType="image/x-icon" />
|
||||||
|
<mimeMap fileExtension=".ics" mimeType="text/calendar" />
|
||||||
|
<mimeMap fileExtension=".ief" mimeType="image/ief" />
|
||||||
|
<mimeMap fileExtension=".ifb" mimeType="text/calendar" />
|
||||||
|
<mimeMap fileExtension=".iii" mimeType="application/x-iphone" />
|
||||||
|
<mimeMap fileExtension=".inf" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".ins" mimeType="application/x-internet-signup" />
|
||||||
|
<mimeMap fileExtension=".isp" mimeType="application/x-internet-signup" />
|
||||||
|
<mimeMap fileExtension=".IVF" mimeType="video/x-ivf" />
|
||||||
|
<mimeMap fileExtension=".jar" mimeType="application/java-archive" />
|
||||||
|
<mimeMap fileExtension=".java" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".jck" mimeType="application/liquidmotion" />
|
||||||
|
<mimeMap fileExtension=".jcz" mimeType="application/liquidmotion" />
|
||||||
|
<mimeMap fileExtension=".jfif" mimeType="image/pjpeg" />
|
||||||
|
<mimeMap fileExtension=".jpb" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".jpe" mimeType="image/jpeg" />
|
||||||
|
<mimeMap fileExtension=".jpeg" mimeType="image/jpeg" />
|
||||||
|
<mimeMap fileExtension=".jpg" mimeType="image/jpeg" />
|
||||||
|
<mimeMap fileExtension=".js" mimeType="application/x-javascript" />
|
||||||
|
<mimeMap fileExtension=".jsx" mimeType="text/jscript" />
|
||||||
|
<mimeMap fileExtension=".latex" mimeType="application/x-latex" />
|
||||||
|
<mimeMap fileExtension=".lit" mimeType="application/x-ms-reader" />
|
||||||
|
<mimeMap fileExtension=".lpk" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".lsf" mimeType="video/x-la-asf" />
|
||||||
|
<mimeMap fileExtension=".lsx" mimeType="video/x-la-asf" />
|
||||||
|
<mimeMap fileExtension=".lzh" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".m13" mimeType="application/x-msmediaview" />
|
||||||
|
<mimeMap fileExtension=".m14" mimeType="application/x-msmediaview" />
|
||||||
|
<mimeMap fileExtension=".m1v" mimeType="video/mpeg" />
|
||||||
|
<mimeMap fileExtension=".m3u" mimeType="audio/x-mpegurl" />
|
||||||
|
<mimeMap fileExtension=".man" mimeType="application/x-troff-man" />
|
||||||
|
<mimeMap fileExtension=".manifest" mimeType="application/x-ms-manifest" />
|
||||||
|
<mimeMap fileExtension=".map" mimeType="text/plain" />
|
||||||
|
<mimeMap fileExtension=".mdb" mimeType="application/x-msaccess" />
|
||||||
|
<mimeMap fileExtension=".mdp" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".me" mimeType="application/x-troff-me" />
|
||||||
|
<mimeMap fileExtension=".mht" mimeType="message/rfc822" />
|
||||||
|
<mimeMap fileExtension=".mhtml" mimeType="message/rfc822" />
|
||||||
|
<mimeMap fileExtension=".mid" mimeType="audio/mid" />
|
||||||
|
<mimeMap fileExtension=".midi" mimeType="audio/mid" />
|
||||||
|
<mimeMap fileExtension=".mix" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".mmf" mimeType="application/x-smaf" />
|
||||||
|
<mimeMap fileExtension=".mno" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".mny" mimeType="application/x-msmoney" />
|
||||||
|
<mimeMap fileExtension=".mov" mimeType="video/quicktime" />
|
||||||
|
<mimeMap fileExtension=".movie" mimeType="video/x-sgi-movie" />
|
||||||
|
<mimeMap fileExtension=".mp2" mimeType="video/mpeg" />
|
||||||
|
<mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
|
||||||
|
<mimeMap fileExtension=".mpa" mimeType="video/mpeg" />
|
||||||
|
<mimeMap fileExtension=".mpe" mimeType="video/mpeg" />
|
||||||
|
<mimeMap fileExtension=".mpeg" mimeType="video/mpeg" />
|
||||||
|
<mimeMap fileExtension=".mpg" mimeType="video/mpeg" />
|
||||||
|
<mimeMap fileExtension=".mpp" mimeType="application/vnd.ms-project" />
|
||||||
|
<mimeMap fileExtension=".mpv2" mimeType="video/mpeg" />
|
||||||
|
<mimeMap fileExtension=".ms" mimeType="application/x-troff-ms" />
|
||||||
|
<mimeMap fileExtension=".msi" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".mso" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".mvb" mimeType="application/x-msmediaview" />
|
||||||
|
<mimeMap fileExtension=".mvc" mimeType="application/x-miva-compiled" />
|
||||||
|
<mimeMap fileExtension=".nc" mimeType="application/x-netcdf" />
|
||||||
|
<mimeMap fileExtension=".nsc" mimeType="video/x-ms-asf" />
|
||||||
|
<mimeMap fileExtension=".nws" mimeType="message/rfc822" />
|
||||||
|
<mimeMap fileExtension=".ocx" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".oda" mimeType="application/oda" />
|
||||||
|
<mimeMap fileExtension=".odc" mimeType="text/x-ms-odc" />
|
||||||
|
<mimeMap fileExtension=".ods" mimeType="application/oleobject" />
|
||||||
|
<mimeMap fileExtension=".one" mimeType="application/onenote" />
|
||||||
|
<mimeMap fileExtension=".onea" mimeType="application/onenote" />
|
||||||
|
<mimeMap fileExtension=".onetoc" mimeType="application/onenote" />
|
||||||
|
<mimeMap fileExtension=".onetoc2" mimeType="application/onenote" />
|
||||||
|
<mimeMap fileExtension=".onetmp" mimeType="application/onenote" />
|
||||||
|
<mimeMap fileExtension=".onepkg" mimeType="application/onenote" />
|
||||||
|
<mimeMap fileExtension=".osdx" mimeType="application/opensearchdescription+xml" />
|
||||||
|
<mimeMap fileExtension=".p10" mimeType="application/pkcs10" />
|
||||||
|
<mimeMap fileExtension=".p12" mimeType="application/x-pkcs12" />
|
||||||
|
<mimeMap fileExtension=".p7b" mimeType="application/x-pkcs7-certificates" />
|
||||||
|
<mimeMap fileExtension=".p7c" mimeType="application/pkcs7-mime" />
|
||||||
|
<mimeMap fileExtension=".p7m" mimeType="application/pkcs7-mime" />
|
||||||
|
<mimeMap fileExtension=".p7r" mimeType="application/x-pkcs7-certreqresp" />
|
||||||
|
<mimeMap fileExtension=".p7s" mimeType="application/pkcs7-signature" />
|
||||||
|
<mimeMap fileExtension=".pbm" mimeType="image/x-portable-bitmap" />
|
||||||
|
<mimeMap fileExtension=".pcx" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".pcz" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".pdf" mimeType="application/pdf" />
|
||||||
|
<mimeMap fileExtension=".pfb" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".pfm" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".pfx" mimeType="application/x-pkcs12" />
|
||||||
|
<mimeMap fileExtension=".pgm" mimeType="image/x-portable-graymap" />
|
||||||
|
<mimeMap fileExtension=".pko" mimeType="application/vnd.ms-pki.pko" />
|
||||||
|
<mimeMap fileExtension=".pma" mimeType="application/x-perfmon" />
|
||||||
|
<mimeMap fileExtension=".pmc" mimeType="application/x-perfmon" />
|
||||||
|
<mimeMap fileExtension=".pml" mimeType="application/x-perfmon" />
|
||||||
|
<mimeMap fileExtension=".pmr" mimeType="application/x-perfmon" />
|
||||||
|
<mimeMap fileExtension=".pmw" mimeType="application/x-perfmon" />
|
||||||
|
<mimeMap fileExtension=".png" mimeType="image/png" />
|
||||||
|
<mimeMap fileExtension=".pnm" mimeType="image/x-portable-anymap" />
|
||||||
|
<mimeMap fileExtension=".pnz" mimeType="image/png" />
|
||||||
|
<mimeMap fileExtension=".pot" mimeType="application/vnd.ms-powerpoint" />
|
||||||
|
<mimeMap fileExtension=".potm" mimeType="application/vnd.ms-powerpoint.template.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".potx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.template" />
|
||||||
|
<mimeMap fileExtension=".ppam" mimeType="application/vnd.ms-powerpoint.addin.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".ppm" mimeType="image/x-portable-pixmap" />
|
||||||
|
<mimeMap fileExtension=".pps" mimeType="application/vnd.ms-powerpoint" />
|
||||||
|
<mimeMap fileExtension=".ppsm" mimeType="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".ppsx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slideshow" />
|
||||||
|
<mimeMap fileExtension=".ppt" mimeType="application/vnd.ms-powerpoint" />
|
||||||
|
<mimeMap fileExtension=".pptm" mimeType="application/vnd.ms-powerpoint.presentation.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".pptx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" />
|
||||||
|
<mimeMap fileExtension=".prf" mimeType="application/pics-rules" />
|
||||||
|
<mimeMap fileExtension=".prm" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".prx" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".ps" mimeType="application/postscript" />
|
||||||
|
<mimeMap fileExtension=".psd" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".psm" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".psp" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".pub" mimeType="application/x-mspublisher" />
|
||||||
|
<mimeMap fileExtension=".qt" mimeType="video/quicktime" />
|
||||||
|
<mimeMap fileExtension=".qtl" mimeType="application/x-quicktimeplayer" />
|
||||||
|
<mimeMap fileExtension=".qxd" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".ra" mimeType="audio/x-pn-realaudio" />
|
||||||
|
<mimeMap fileExtension=".ram" mimeType="audio/x-pn-realaudio" />
|
||||||
|
<mimeMap fileExtension=".rar" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".ras" mimeType="image/x-cmu-raster" />
|
||||||
|
<mimeMap fileExtension=".rf" mimeType="image/vnd.rn-realflash" />
|
||||||
|
<mimeMap fileExtension=".rgb" mimeType="image/x-rgb" />
|
||||||
|
<mimeMap fileExtension=".rm" mimeType="application/vnd.rn-realmedia" />
|
||||||
|
<mimeMap fileExtension=".rmi" mimeType="audio/mid" />
|
||||||
|
<mimeMap fileExtension=".roff" mimeType="application/x-troff" />
|
||||||
|
<mimeMap fileExtension=".rpm" mimeType="audio/x-pn-realaudio-plugin" />
|
||||||
|
<mimeMap fileExtension=".rtf" mimeType="application/rtf" />
|
||||||
|
<mimeMap fileExtension=".rtx" mimeType="text/richtext" />
|
||||||
|
<mimeMap fileExtension=".scd" mimeType="application/x-msschedule" />
|
||||||
|
<mimeMap fileExtension=".sct" mimeType="text/scriptlet" />
|
||||||
|
<mimeMap fileExtension=".sea" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".setpay" mimeType="application/set-payment-initiation" />
|
||||||
|
<mimeMap fileExtension=".setreg" mimeType="application/set-registration-initiation" />
|
||||||
|
<mimeMap fileExtension=".sgml" mimeType="text/sgml" />
|
||||||
|
<mimeMap fileExtension=".sh" mimeType="application/x-sh" />
|
||||||
|
<mimeMap fileExtension=".shar" mimeType="application/x-shar" />
|
||||||
|
<mimeMap fileExtension=".sit" mimeType="application/x-stuffit" />
|
||||||
|
<mimeMap fileExtension=".sldm" mimeType="application/vnd.ms-powerpoint.slide.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".sldx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slide" />
|
||||||
|
<mimeMap fileExtension=".smd" mimeType="audio/x-smd" />
|
||||||
|
<mimeMap fileExtension=".smi" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".smx" mimeType="audio/x-smd" />
|
||||||
|
<mimeMap fileExtension=".smz" mimeType="audio/x-smd" />
|
||||||
|
<mimeMap fileExtension=".snd" mimeType="audio/basic" />
|
||||||
|
<mimeMap fileExtension=".snp" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".spc" mimeType="application/x-pkcs7-certificates" />
|
||||||
|
<mimeMap fileExtension=".spl" mimeType="application/futuresplash" />
|
||||||
|
<mimeMap fileExtension=".src" mimeType="application/x-wais-source" />
|
||||||
|
<mimeMap fileExtension=".ssm" mimeType="application/streamingmedia" />
|
||||||
|
<mimeMap fileExtension=".sst" mimeType="application/vnd.ms-pki.certstore" />
|
||||||
|
<mimeMap fileExtension=".stl" mimeType="application/vnd.ms-pki.stl" />
|
||||||
|
<mimeMap fileExtension=".sv4cpio" mimeType="application/x-sv4cpio" />
|
||||||
|
<mimeMap fileExtension=".sv4crc" mimeType="application/x-sv4crc" />
|
||||||
|
<mimeMap fileExtension=".swf" mimeType="application/x-shockwave-flash" />
|
||||||
|
<mimeMap fileExtension=".t" mimeType="application/x-troff" />
|
||||||
|
<mimeMap fileExtension=".tar" mimeType="application/x-tar" />
|
||||||
|
<mimeMap fileExtension=".tcl" mimeType="application/x-tcl" />
|
||||||
|
<mimeMap fileExtension=".tex" mimeType="application/x-tex" />
|
||||||
|
<mimeMap fileExtension=".texi" mimeType="application/x-texinfo" />
|
||||||
|
<mimeMap fileExtension=".texinfo" mimeType="application/x-texinfo" />
|
||||||
|
<mimeMap fileExtension=".tgz" mimeType="application/x-compressed" />
|
||||||
|
<mimeMap fileExtension=".thmx" mimeType="application/vnd.ms-officetheme" />
|
||||||
|
<mimeMap fileExtension=".thn" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".tif" mimeType="image/tiff" />
|
||||||
|
<mimeMap fileExtension=".tiff" mimeType="image/tiff" />
|
||||||
|
<mimeMap fileExtension=".toc" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".tr" mimeType="application/x-troff" />
|
||||||
|
<mimeMap fileExtension=".trm" mimeType="application/x-msterminal" />
|
||||||
|
<mimeMap fileExtension=".tsv" mimeType="text/tab-separated-values" />
|
||||||
|
<mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".txt" mimeType="text/plain" />
|
||||||
|
<mimeMap fileExtension=".u32" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".uls" mimeType="text/iuls" />
|
||||||
|
<mimeMap fileExtension=".ustar" mimeType="application/x-ustar" />
|
||||||
|
<mimeMap fileExtension=".vbs" mimeType="text/vbscript" />
|
||||||
|
<mimeMap fileExtension=".vcf" mimeType="text/x-vcard" />
|
||||||
|
<mimeMap fileExtension=".vcs" mimeType="text/plain" />
|
||||||
|
<mimeMap fileExtension=".vdx" mimeType="application/vnd.ms-visio.viewer" />
|
||||||
|
<mimeMap fileExtension=".vml" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".vsd" mimeType="application/vnd.visio" />
|
||||||
|
<mimeMap fileExtension=".vss" mimeType="application/vnd.visio" />
|
||||||
|
<mimeMap fileExtension=".vst" mimeType="application/vnd.visio" />
|
||||||
|
<mimeMap fileExtension=".vsto" mimeType="application/x-ms-vsto" />
|
||||||
|
<mimeMap fileExtension=".vsw" mimeType="application/vnd.visio" />
|
||||||
|
<mimeMap fileExtension=".vsx" mimeType="application/vnd.visio" />
|
||||||
|
<mimeMap fileExtension=".vtx" mimeType="application/vnd.visio" />
|
||||||
|
<mimeMap fileExtension=".wav" mimeType="audio/wav" />
|
||||||
|
<mimeMap fileExtension=".wax" mimeType="audio/x-ms-wax" />
|
||||||
|
<mimeMap fileExtension=".wbmp" mimeType="image/vnd.wap.wbmp" />
|
||||||
|
<mimeMap fileExtension=".wcm" mimeType="application/vnd.ms-works" />
|
||||||
|
<mimeMap fileExtension=".wdb" mimeType="application/vnd.ms-works" />
|
||||||
|
<mimeMap fileExtension=".wks" mimeType="application/vnd.ms-works" />
|
||||||
|
<mimeMap fileExtension=".wm" mimeType="video/x-ms-wm" />
|
||||||
|
<mimeMap fileExtension=".wma" mimeType="audio/x-ms-wma" />
|
||||||
|
<mimeMap fileExtension=".wmd" mimeType="application/x-ms-wmd" />
|
||||||
|
<mimeMap fileExtension=".wmf" mimeType="application/x-msmetafile" />
|
||||||
|
<mimeMap fileExtension=".wml" mimeType="text/vnd.wap.wml" />
|
||||||
|
<mimeMap fileExtension=".wmlc" mimeType="application/vnd.wap.wmlc" />
|
||||||
|
<mimeMap fileExtension=".wmls" mimeType="text/vnd.wap.wmlscript" />
|
||||||
|
<mimeMap fileExtension=".wmlsc" mimeType="application/vnd.wap.wmlscriptc" />
|
||||||
|
<mimeMap fileExtension=".wmp" mimeType="video/x-ms-wmp" />
|
||||||
|
<mimeMap fileExtension=".wmv" mimeType="video/x-ms-wmv" />
|
||||||
|
<mimeMap fileExtension=".wmx" mimeType="video/x-ms-wmx" />
|
||||||
|
<mimeMap fileExtension=".wmz" mimeType="application/x-ms-wmz" />
|
||||||
|
<mimeMap fileExtension=".wps" mimeType="application/vnd.ms-works" />
|
||||||
|
<mimeMap fileExtension=".wri" mimeType="application/x-mswrite" />
|
||||||
|
<mimeMap fileExtension=".wrl" mimeType="x-world/x-vrml" />
|
||||||
|
<mimeMap fileExtension=".wrz" mimeType="x-world/x-vrml" />
|
||||||
|
<mimeMap fileExtension=".wsdl" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".wvx" mimeType="video/x-ms-wvx" />
|
||||||
|
<mimeMap fileExtension=".x" mimeType="application/directx" />
|
||||||
|
<mimeMap fileExtension=".xaf" mimeType="x-world/x-vrml" />
|
||||||
|
<mimeMap fileExtension=".xaml" mimeType="application/xaml+xml" />
|
||||||
|
<mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app" />
|
||||||
|
<mimeMap fileExtension=".xbap" mimeType="application/x-ms-xbap" />
|
||||||
|
<mimeMap fileExtension=".xbm" mimeType="image/x-xbitmap" />
|
||||||
|
<mimeMap fileExtension=".xdr" mimeType="text/plain" />
|
||||||
|
<mimeMap fileExtension=".xla" mimeType="application/vnd.ms-excel" />
|
||||||
|
<mimeMap fileExtension=".xlam" mimeType="application/vnd.ms-excel.addin.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".xlc" mimeType="application/vnd.ms-excel" />
|
||||||
|
<mimeMap fileExtension=".xlm" mimeType="application/vnd.ms-excel" />
|
||||||
|
<mimeMap fileExtension=".xls" mimeType="application/vnd.ms-excel" />
|
||||||
|
<mimeMap fileExtension=".xlsb" mimeType="application/vnd.ms-excel.sheet.binary.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".xlsm" mimeType="application/vnd.ms-excel.sheet.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".xlsx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
|
||||||
|
<mimeMap fileExtension=".xlt" mimeType="application/vnd.ms-excel" />
|
||||||
|
<mimeMap fileExtension=".xltm" mimeType="application/vnd.ms-excel.template.macroEnabled.12" />
|
||||||
|
<mimeMap fileExtension=".xltx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.template" />
|
||||||
|
<mimeMap fileExtension=".xlw" mimeType="application/vnd.ms-excel" />
|
||||||
|
<mimeMap fileExtension=".xml" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".xof" mimeType="x-world/x-vrml" />
|
||||||
|
<mimeMap fileExtension=".xpm" mimeType="image/x-xpixmap" />
|
||||||
|
<mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" />
|
||||||
|
<mimeMap fileExtension=".xsd" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".xsf" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".xsl" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".xslt" mimeType="text/xml" />
|
||||||
|
<mimeMap fileExtension=".xsn" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".xtp" mimeType="application/octet-stream" />
|
||||||
|
<mimeMap fileExtension=".xwd" mimeType="image/x-xwindowdump" />
|
||||||
|
<mimeMap fileExtension=".z" mimeType="application/x-compress" />
|
||||||
|
<mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" />
|
||||||
|
</staticContent>
|
||||||
|
|
||||||
|
<tracing>
|
||||||
|
|
||||||
|
<traceProviderDefinitions>
|
||||||
|
<add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}">
|
||||||
|
<areas>
|
||||||
|
<clear />
|
||||||
|
<add name="Authentication" value="2" />
|
||||||
|
<add name="Security" value="4" />
|
||||||
|
<add name="Filter" value="8" />
|
||||||
|
<add name="StaticFile" value="16" />
|
||||||
|
<add name="CGI" value="32" />
|
||||||
|
<add name="Compression" value="64" />
|
||||||
|
<add name="Cache" value="128" />
|
||||||
|
<add name="RequestNotifications" value="256" />
|
||||||
|
<add name="Module" value="512" />
|
||||||
|
<add name="Rewrite" value="1024" />
|
||||||
|
<add name="FastCGI" value="4096" />
|
||||||
|
</areas>
|
||||||
|
</add>
|
||||||
|
<add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}">
|
||||||
|
<areas>
|
||||||
|
<clear />
|
||||||
|
</areas>
|
||||||
|
</add>
|
||||||
|
<add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}">
|
||||||
|
<areas>
|
||||||
|
<clear />
|
||||||
|
</areas>
|
||||||
|
</add>
|
||||||
|
<add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}">
|
||||||
|
<areas>
|
||||||
|
<add name="Infrastructure" value="1" />
|
||||||
|
<add name="Module" value="2" />
|
||||||
|
<add name="Page" value="4" />
|
||||||
|
<add name="AppServices" value="8" />
|
||||||
|
</areas>
|
||||||
|
</add>
|
||||||
|
</traceProviderDefinitions>
|
||||||
|
|
||||||
|
<traceFailedRequests>
|
||||||
|
<add path="*">
|
||||||
|
<traceAreas>
|
||||||
|
<add provider="ASP" verbosity="Verbose" />
|
||||||
|
<add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
|
||||||
|
<add provider="ISAPI Extension" verbosity="Verbose" />
|
||||||
|
<add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite" verbosity="Verbose" />
|
||||||
|
</traceAreas>
|
||||||
|
<failureDefinitions statusCodes="200-999" />
|
||||||
|
</add>
|
||||||
|
</traceFailedRequests>
|
||||||
|
|
||||||
|
</tracing>
|
||||||
|
|
||||||
|
<urlCompression />
|
||||||
|
|
||||||
|
<validation />
|
||||||
|
<webdav>
|
||||||
|
<globalSettings>
|
||||||
|
<propertyStores>
|
||||||
|
<add name="webdav_simple_prop" image="%IIS_BIN%\webdav_simple_prop.dll" image32="%windir%\syswow64\inetsrv\webdav_simple_prop.dll" />
|
||||||
|
</propertyStores>
|
||||||
|
<lockStores>
|
||||||
|
<add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%windir%\syswow64\inetsrv\webdav_simple_lock.dll" />
|
||||||
|
</lockStores>
|
||||||
|
|
||||||
|
</globalSettings>
|
||||||
|
<authoring>
|
||||||
|
<locks enabled="true" lockStore="webdav_simple_lock" />
|
||||||
|
</authoring>
|
||||||
|
<authoringRules />
|
||||||
|
</webdav>
|
||||||
|
|
||||||
|
</system.webServer>
|
||||||
|
<location path="" overrideMode="Allow">
|
||||||
|
<system.webServer>
|
||||||
|
<modules>
|
||||||
|
<!--
|
||||||
|
<add name="HttpCacheModule" lockItem="true" />
|
||||||
|
-->
|
||||||
|
<add name="DynamicCompressionModule" lockItem="true" />
|
||||||
|
<add name="StaticCompressionModule" lockItem="true" />
|
||||||
|
<add name="DefaultDocumentModule" lockItem="true" />
|
||||||
|
<add name="DirectoryListingModule" lockItem="true" />
|
||||||
|
<add name="IsapiFilterModule" lockItem="true" />
|
||||||
|
<add name="ProtocolSupportModule" lockItem="true" />
|
||||||
|
<add name="HttpRedirectionModule" lockItem="true" />
|
||||||
|
<add name="ServerSideIncludeModule" lockItem="true" />
|
||||||
|
<add name="StaticFileModule" lockItem="true" />
|
||||||
|
<add name="AnonymousAuthenticationModule" lockItem="true" />
|
||||||
|
<add name="CertificateMappingAuthenticationModule" lockItem="true" />
|
||||||
|
<add name="UrlAuthorizationModule" lockItem="true" />
|
||||||
|
<add name="BasicAuthenticationModule" lockItem="true" />
|
||||||
|
<add name="WindowsAuthenticationModule" lockItem="true" />
|
||||||
|
<!--
|
||||||
|
<add name="DigestAuthenticationModule" lockItem="true" />
|
||||||
|
-->
|
||||||
|
<add name="IISCertificateMappingAuthenticationModule" lockItem="true" />
|
||||||
|
<add name="IpRestrictionModule" lockItem="true" />
|
||||||
|
<add name="RequestFilteringModule" lockItem="true" />
|
||||||
|
<add name="CustomLoggingModule" lockItem="true" />
|
||||||
|
<add name="CustomErrorModule" lockItem="true" />
|
||||||
|
<add name="IsapiModule" lockItem="true" />
|
||||||
|
<add name="HttpLoggingModule" lockItem="true" />
|
||||||
|
<add name="FailedRequestsTracingModule" lockItem="true" />
|
||||||
|
<add name="CgiModule" lockItem="true" />
|
||||||
|
<add name="FastCgiModule" lockItem="true" />
|
||||||
|
<!-- <add name="WebDAVModule" /> -->
|
||||||
|
<add name="RewriteModule" />
|
||||||
|
<add name="ConfigurationValidationModule" lockItem="true" />
|
||||||
|
<add name="WebMatrixSupportModule" lockItem="true" />
|
||||||
|
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" preCondition="managedHandler" />
|
||||||
|
<add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" />
|
||||||
|
<add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="managedHandler" />
|
||||||
|
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
|
||||||
|
<add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" />
|
||||||
|
<add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" />
|
||||||
|
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="managedHandler" />
|
||||||
|
<add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" preCondition="managedHandler" />
|
||||||
|
<add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" preCondition="managedHandler" />
|
||||||
|
<add name="Profile" type="System.Web.Profile.ProfileModule" preCondition="managedHandler" />
|
||||||
|
<add name="UrlMappingsModule" type="System.Web.UrlMappingsModule" preCondition="managedHandler" />
|
||||||
|
<add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule,System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
|
||||||
|
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" />
|
||||||
|
<add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
|
||||||
|
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
|
||||||
|
</modules>
|
||||||
|
<handlers accessPolicy="Read, Script">
|
||||||
|
<!-- <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> -->
|
||||||
|
<add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
|
||||||
|
<add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
|
||||||
|
<add name="xoml-Integrated" path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
|
||||||
|
<add name="xoml-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
|
||||||
|
<add name="rules-Integrated" path="*.rules" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
|
||||||
|
<add name="rules-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
|
||||||
|
<add name="AXD-ISAPI-4.0_32bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_32bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="svc-ISAPI-4.0_32bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="rules-ISAPI-4.0_32bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="xoml-ISAPI-4.0_32bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="xamlx-ISAPI-4.0_32bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="aspq-ISAPI-4.0_32bit" path="*.aspq" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="cshtm-ISAPI-4.0_32bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="cshtml-ISAPI-4.0_32bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="vbhtm-ISAPI-4.0_32bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="vbhtml-ISAPI-4.0_32bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="TraceHandler-Integrated-4.0" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="WebAdminHandler-Integrated-4.0" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="AssemblyResourceLoader-Integrated-4.0" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="WebServiceHandlerFactory-Integrated-4.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="HttpRemotingHandlerFactory-rem-Integrated-4.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="HttpRemotingHandlerFactory-soap-Integrated-4.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="svc-Integrated-4.0" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="rules-Integrated-4.0" path="*.rules" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="xoml-Integrated-4.0" path="*.xoml" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="xamlx-Integrated-4.0" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="aspq-Integrated-4.0" path="*.aspq" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="cshtm-Integrated-4.0" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="cshtml-Integrated-4.0" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="vbhtm-Integrated-4.0" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="vbhtml-Integrated-4.0" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="ScriptHandlerFactoryAppServices-Integrated-4.0" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="ScriptResourceIntegrated-4.0" path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<!-- <add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />-->
|
||||||
|
<!-- <add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />-->
|
||||||
|
<add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
|
||||||
|
<add name="TraceHandler-Integrated" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode" />
|
||||||
|
<add name="WebAdminHandler-Integrated" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode" />
|
||||||
|
<add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode" />
|
||||||
|
<add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode" />
|
||||||
|
<add name="SimpleHandlerFactory-Integrated" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode" />
|
||||||
|
<add name="WebServiceHandlerFactory-Integrated" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" preCondition="integratedMode,runtimeVersionv2.0" />
|
||||||
|
<add name="HttpRemotingHandlerFactory-rem-Integrated" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
|
||||||
|
<add name="HttpRemotingHandlerFactory-soap-Integrated" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
|
||||||
|
<add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="WebServiceHandlerFactory-ISAPI-2.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
|
||||||
|
<add name="SSINC-stm" path="*.stm" verb="GET,POST" modules="ServerSideIncludeModule" resourceType="File" />
|
||||||
|
<add name="SSINC-shtm" path="*.shtm" verb="GET,POST" modules="ServerSideIncludeModule" resourceType="File" />
|
||||||
|
<add name="SSINC-shtml" path="*.shtml" verb="GET,POST" modules="ServerSideIncludeModule" resourceType="File" />
|
||||||
|
<add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
|
||||||
|
<add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" />
|
||||||
|
<add name="ExtensionlessUrl-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||||
|
<add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||||
|
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
|
||||||
|
</handlers>
|
||||||
|
</system.webServer>
|
||||||
|
</location>
|
||||||
|
</configuration>
|
Binary file not shown.
@ -1,9 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<runtime>
|
|
||||||
<generatePublisherEvidence enabled="false"/>
|
|
||||||
</runtime>
|
|
||||||
<startup useLegacyV2RuntimeActivationPolicy="true">
|
<startup useLegacyV2RuntimeActivationPolicy="true">
|
||||||
<supportedRuntime version="v4.0" />
|
<supportedRuntime version="v4.0" />
|
||||||
|
<supportedRuntime version="v2.0.50727" />
|
||||||
</startup>
|
</startup>
|
||||||
</configuration>
|
</configuration>
|
@ -0,0 +1,181 @@
|
|||||||
|
// Configures Windows Communication Foundation 3.5 for WebMatrix
|
||||||
|
//
|
||||||
|
// Usage:
|
||||||
|
// WCFWebMatrixInstall.js [un]install
|
||||||
|
|
||||||
|
var moduleName = "ServiceModel";
|
||||||
|
var handlerNames = ["svc-Integrated","rules-Integrated","xoml-Integrated","svc-ISAPI-2.0","rules-ISAPI-2.0","xoml-ISAPI-2.0"];
|
||||||
|
|
||||||
|
try {
|
||||||
|
var mode = ParseArguments();
|
||||||
|
if (mode == "install")
|
||||||
|
{
|
||||||
|
UninstallWCF();
|
||||||
|
InstallWCF();
|
||||||
|
WScript.Echo("WCF 3.5 has been configured for WebMatrix.");
|
||||||
|
}
|
||||||
|
else if (mode == "uninstall")
|
||||||
|
{
|
||||||
|
UninstallWCF();
|
||||||
|
WScript.Echo("WCF 3.5 has been uninstalled from WebMatrix.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PrintUsage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(e) {
|
||||||
|
WScript.Echo("An error occurred:\r\n " + e.description);
|
||||||
|
}
|
||||||
|
|
||||||
|
function InstallWCF() {
|
||||||
|
var adminManager = GetAdminManager();
|
||||||
|
|
||||||
|
AddModule(adminManager);
|
||||||
|
AddHandlers(adminManager);
|
||||||
|
|
||||||
|
adminManager.CommitChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
function UninstallWCF() {
|
||||||
|
var adminManager = GetAdminManager();
|
||||||
|
var moduleSection = adminManager.GetAdminSection("system.webServer/modules", "MACHINE/WEBROOT/APPHOST");
|
||||||
|
|
||||||
|
var modulePosition = FindElement(moduleSection.Collection, "add", ["name", moduleName]);
|
||||||
|
if (modulePosition != -1)
|
||||||
|
{
|
||||||
|
moduleSection.Collection.DeleteElement(modulePosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
var handlerSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST");
|
||||||
|
for (i = 0 ; i < handlerNames.length; i++)
|
||||||
|
{
|
||||||
|
var svcPosition = FindElement(handlerSection.Collection, "add", ["name", handlerNames[i]]);
|
||||||
|
if (svcPosition != -1)
|
||||||
|
{
|
||||||
|
handlerSection.Collection.DeleteElement(svcPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
adminManager.CommitChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
function AddModule(adminManager)
|
||||||
|
{
|
||||||
|
var moduleSection = adminManager.GetAdminSection("system.webServer/modules", "MACHINE/WEBROOT/APPHOST");
|
||||||
|
|
||||||
|
var element = moduleSection.Collection.CreateNewElement("add");
|
||||||
|
element.Properties.Item("name").Value = moduleName;
|
||||||
|
element.Properties.Item("type").Value = "System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
||||||
|
element.Properties.Item("preCondition").Value = "managedHandler,runtimeVersionv2.0";
|
||||||
|
moduleSection.Collection.AddElement(element, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function AddHandlers(adminManager)
|
||||||
|
{
|
||||||
|
var handlerSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST");
|
||||||
|
|
||||||
|
AddIntegratedHandler(handlerSection, handlerNames[0], "*.svc");
|
||||||
|
AddIntegratedHandler(handlerSection, handlerNames[1], "*.rules");
|
||||||
|
AddIntegratedHandler(handlerSection, handlerNames[2], "*.xoml");
|
||||||
|
|
||||||
|
AddISAPIHandler(handlerSection, handlerNames[3], "*.svc");
|
||||||
|
AddISAPIHandler(handlerSection, handlerNames[4], "*.rules");
|
||||||
|
AddISAPIHandler(handlerSection, handlerNames[5], "*.xoml");
|
||||||
|
}
|
||||||
|
|
||||||
|
function AddIntegratedHandler(section, name, path)
|
||||||
|
{
|
||||||
|
var element = section.Collection.CreateNewElement("add");
|
||||||
|
element.Properties.Item("name").Value = name;
|
||||||
|
element.Properties.Item("path").Value = path;
|
||||||
|
element.Properties.Item("verb").Value = "*";
|
||||||
|
element.Properties.Item("type").Value = "System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
||||||
|
element.Properties.Item("preCondition").Value = "integratedMode,runtimeVersionv2.0";
|
||||||
|
section.Collection.AddElement(element, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function AddISAPIHandler(section, name, path)
|
||||||
|
{
|
||||||
|
var element = section.Collection.CreateNewElement("add");
|
||||||
|
element.Properties.Item("name").Value = name;
|
||||||
|
element.Properties.Item("path").Value = path;
|
||||||
|
element.Properties.Item("verb").Value = "*";
|
||||||
|
element.Properties.Item("modules").Value = "IsapiModule";
|
||||||
|
element.Properties.Item("scriptProcessor").Value = "%SystemRoot%\\Microsoft.NET\\Framework\\v2.0.50727\\aspnet_isapi.dll";
|
||||||
|
element.Properties.Item("preCondition").Value = "classicMode,runtimeVersionv2.0,bitness32";
|
||||||
|
section.Collection.AddElement(element, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function GetAdminManager()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var vermg = new ActiveXObject("Microsoft.IIS.VersionManager");
|
||||||
|
var exp = vermg.GetVersionObject("8.0", 1);
|
||||||
|
return adminManager = exp.CreateObjectFromProgId("Microsoft.ApplicationHost.WritableAdminManager");
|
||||||
|
}
|
||||||
|
catch(e)
|
||||||
|
{
|
||||||
|
throw new Error("Unable to create WritableAdminManager.\r\n Please ensure that WebMatrix is installed properly.\r\n\r\n " + e.description);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function FindElement(collection, elementTagName, valuesToMatch)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < collection.Count; i++)
|
||||||
|
{
|
||||||
|
var element = collection.Item(i);
|
||||||
|
|
||||||
|
if (element.Name == elementTagName)
|
||||||
|
{
|
||||||
|
var matches = true;
|
||||||
|
for (var iVal = 0; iVal < valuesToMatch.length; iVal += 2)
|
||||||
|
{
|
||||||
|
var property = element.GetPropertyByName(valuesToMatch[iVal]);
|
||||||
|
var value = property.Value;
|
||||||
|
if (value != null)
|
||||||
|
{
|
||||||
|
value = value.toString();
|
||||||
|
}
|
||||||
|
if (value != valuesToMatch[iVal + 1])
|
||||||
|
{
|
||||||
|
matches = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (matches)
|
||||||
|
{
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ParseArguments()
|
||||||
|
{
|
||||||
|
var mode = "";
|
||||||
|
|
||||||
|
if (WScript.Arguments.Count() > 0)
|
||||||
|
{
|
||||||
|
if (WScript.Arguments.Item(0).toLowerCase() == "install")
|
||||||
|
{
|
||||||
|
mode="install";
|
||||||
|
}
|
||||||
|
else if (WScript.Arguments.Item(0).toLowerCase() == "uninstall")
|
||||||
|
{
|
||||||
|
mode="uninstall";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
function PrintUsage()
|
||||||
|
{
|
||||||
|
WScript.Echo("Usage:\r\n WCFWebMatrixInstall.js <cmd>\r\n\r\nDescription:\r\nAdministration utility that enables configuation of WCF 3.5 for WebMatrix\r\n\r\nSupported Commands:\r\n install, uninstall\r\n\r\nSamples:\r\n WCFWebMatrixInstall.js install\r\n WCFWebMatrixInstall.js uninstall");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Binary file not shown.
@ -0,0 +1,74 @@
|
|||||||
|
<appcmd>
|
||||||
|
<object name="site" alias="sites" classId="DefaultSiteObject" >
|
||||||
|
<verb name="list" classId="DefaultSiteObject" />
|
||||||
|
<verb name="set" classId="DefaultSiteObject" />
|
||||||
|
<verb name="add" classId="DefaultSiteObject" />
|
||||||
|
<verb name="delete" classId="DefaultSiteObject" />
|
||||||
|
<!--
|
||||||
|
<verb name="start" classId="DefaultSiteObject" />
|
||||||
|
<verb name="stop" classId="DefaultSiteObject" />
|
||||||
|
-->
|
||||||
|
</object>
|
||||||
|
<object name="app" alias="apps" classId="DefaultAppObject" >
|
||||||
|
<verb name="list" description="List applications" classId="DefaultAppObject" />
|
||||||
|
<verb name="set" classId="DefaultAppObject" />
|
||||||
|
<verb name="add" classId="DefaultAppObject" />
|
||||||
|
<verb name="delete" classId="DefaultAppObject" />
|
||||||
|
</object>
|
||||||
|
<object name="vdir" alias="vdirs" classId="DefaultDirObject" >
|
||||||
|
<verb name="list" description="List virtual directories" classId="DefaultDirObject" />
|
||||||
|
<verb name="set" classId="DefaultDirObject" />
|
||||||
|
<verb name="add" classId="DefaultDirObject" />
|
||||||
|
<verb name="delete" classId="DefaultDirObject" />
|
||||||
|
</object>
|
||||||
|
<object name="apppool" alias="apppools" classId="DefaultAppPoolObject" >
|
||||||
|
<verb name="list" classId="DefaultAppPoolObject" />
|
||||||
|
<verb name="set" classId="DefaultAppPoolObject" />
|
||||||
|
<verb name="add" classId="DefaultAppPoolObject" />
|
||||||
|
<verb name="delete" classId="DefaultAppPoolObject" />
|
||||||
|
<!--
|
||||||
|
<verb name="start" classId="DefaultAppPoolObject" />
|
||||||
|
<verb name="stop" classId="DefaultAppPoolObject" />
|
||||||
|
<verb name="recycle" classId="DefaultAppPoolObject" />
|
||||||
|
-->
|
||||||
|
</object>
|
||||||
|
<object name="config" alias="configs" classId="DefaultConfigObject" >
|
||||||
|
<verb name="list" classId="DefaultConfigObject" />
|
||||||
|
<verb name="set" classId="DefaultConfigObject" />
|
||||||
|
<verb name="search" classId="DefaultConfigObject" />
|
||||||
|
<verb name="lock" classId="DefaultConfigObject" />
|
||||||
|
<verb name="unlock" classId="DefaultConfigObject" />
|
||||||
|
<verb name="clear" classId="DefaultConfigObject" />
|
||||||
|
<verb name="reset" classId="DefaultConfigObject" />
|
||||||
|
<!--
|
||||||
|
<verb name="migrate" classId="DefaultConfigObject" />
|
||||||
|
-->
|
||||||
|
</object>
|
||||||
|
<!--
|
||||||
|
<object name="wp" alias="wps" classId="DefaultWorkerProcessObject" >
|
||||||
|
<verb name="list" classId="DefaultWorkerProcessObject" />
|
||||||
|
</object>
|
||||||
|
<object name="request" alias="requests" classId="DefaultRequestObject" >
|
||||||
|
<verb name="list" classId="DefaultRequestObject" />
|
||||||
|
</object>
|
||||||
|
-->
|
||||||
|
<object name="module" alias="modules" classId="DefaultModuleObject" >
|
||||||
|
<verb name="list" classId="DefaultModuleObject" />
|
||||||
|
<verb name="set" classId="DefaultModuleObject" />
|
||||||
|
<verb name="add" classId="DefaultModuleObject" />
|
||||||
|
<verb name="delete" classId="DefaultModuleObject" />
|
||||||
|
<verb name="install" classId="DefaultModuleObject" />
|
||||||
|
<verb name="uninstall" classId="DefaultModuleObject" />
|
||||||
|
</object>
|
||||||
|
<!--object name="backup" alias="backups" classId="DefaultBackupObject" >
|
||||||
|
<verb name="list" classId="DefaultBackupObject" />
|
||||||
|
<verb name="add" classId="DefaultBackupObject" />
|
||||||
|
<verb name="delete" classId="DefaultBackupObject" />
|
||||||
|
<verb name="restore" classId="DefaultBackupObject" />
|
||||||
|
</object-->
|
||||||
|
<object name="trace" alias="traces" classId="DefaultTraceObject" >
|
||||||
|
<verb name="list" classId="DefaultTraceObject" />
|
||||||
|
<verb name="configure" classId="DefaultTraceObject" />
|
||||||
|
<verb name="inspect" classId="DefaultTraceObject" />
|
||||||
|
</object>
|
||||||
|
</appcmd>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,582 @@
|
|||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
ASP.NET configuration schema.
|
||||||
|
|
||||||
|
Please do not edit this file. To add configuration sections to the schema,
|
||||||
|
put them in .xml files similar to this one, in this directory. They will
|
||||||
|
be picked up automatically at application pool startup.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<configSchema>
|
||||||
|
<sectionSchema name="system.web/anonymousIdentification">
|
||||||
|
<attribute name="cookieless" type="enum" defaultValue="UseCookies">
|
||||||
|
<enum name="UseUri" value="0" />
|
||||||
|
<enum name="UseCookies" value="1" />
|
||||||
|
<enum name="AutoDetect" value="2" />
|
||||||
|
<enum name="UseDeviceProfile" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="cookieName" type="string" validationType="nonEmptyString" defaultValue=".ASPXANONYMOUS" />
|
||||||
|
<attribute name="cookiePath" type="string" validationType="nonEmptyString" defaultValue="/" />
|
||||||
|
<attribute name="cookieProtection" type="enum" defaultValue="Validation">
|
||||||
|
<enum name="None" value="0" />
|
||||||
|
<enum name="Validation" value="1" />
|
||||||
|
<enum name="Encryption" value="2" />
|
||||||
|
<enum name="All" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="cookieRequireSSL" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="cookieSlidingExpiration" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="cookieTimeout" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483640,60" allowInfinite="true" timeSpanFormat="minutes" defaultValue="100000" />
|
||||||
|
<attribute name="domain" type="string" />
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="False" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/authentication">
|
||||||
|
<element name="forms">
|
||||||
|
<attribute name="cookieless" type="enum" defaultValue="UseDeviceProfile">
|
||||||
|
<enum name="UseUri" value="0" />
|
||||||
|
<enum name="UseCookies" value="1" />
|
||||||
|
<enum name="AutoDetect" value="2" />
|
||||||
|
<enum name="UseDeviceProfile" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<element name="credentials">
|
||||||
|
<attribute name="passwordFormat" type="enum" defaultValue="SHA1">
|
||||||
|
<enum name="Clear" value="0" />
|
||||||
|
<enum name="SHA1" value="1" />
|
||||||
|
<enum name="MD5" value="2" />
|
||||||
|
</attribute>
|
||||||
|
<collection addElement="user">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="password" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="defaultUrl" type="string" validationType="nonEmptyString" defaultValue="default.aspx" />
|
||||||
|
<attribute name="domain" type="string" />
|
||||||
|
<attribute name="enableCrossAppRedirects" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="loginUrl" type="string" validationType="nonEmptyString" defaultValue="login.aspx" />
|
||||||
|
<attribute name="name" type="string" validationType="nonEmptyString" defaultValue=".ASPXAUTH" />
|
||||||
|
<attribute name="path" type="string" validationType="nonEmptyString" defaultValue="/" />
|
||||||
|
<attribute name="protection" type="enum" defaultValue="All">
|
||||||
|
<enum name="All" value="0" />
|
||||||
|
<enum name="None" value="1" />
|
||||||
|
<enum name="Encryption" value="2" />
|
||||||
|
<enum name="Validation" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="requireSSL" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="slidingExpiration" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="timeout" type="timeSpan" validationType="timeSpanRange" timeSpanFormat="minutes" defaultValue="30" validationParameter="60,2147483640,60" />
|
||||||
|
</element>
|
||||||
|
<attribute name="mode" type="enum" defaultValue="Windows">
|
||||||
|
<enum name="None" value="0" />
|
||||||
|
<enum name="Windows" value="1" />
|
||||||
|
<enum name="Passport" value="2" />
|
||||||
|
<enum name="Forms" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<element name="passport">
|
||||||
|
<attribute name="redirectUrl" type="string" defaultValue="internal" />
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/authorization">
|
||||||
|
<collection addElement="allow,deny" mergeAppend="false" allowDuplicates="true">
|
||||||
|
<attribute name="roles" type="string" />
|
||||||
|
<attribute name="users" type="string" />
|
||||||
|
<attribute name="verbs" type="string" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/browserCaps">
|
||||||
|
<attribute name="userAgentCacheKeyLength" type="int" defaultValue="64" />
|
||||||
|
<collection addElement="result">
|
||||||
|
<attribute name="type" type="string" defaultValue="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/clientTarget">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="alias" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="userAgent" required="true" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/compilation">
|
||||||
|
<element name="assemblies">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="assembly" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="assemblyPostProcessorType" type="string" />
|
||||||
|
<attribute name="batch" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="batchTimeout" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483647,1" allowInfinite="true" timeSpanFormat="seconds" defaultValue="900" />
|
||||||
|
<element name="buildProviders">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="extension" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="type" required="true" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="codeSubDirectories">
|
||||||
|
<collection addElement="add">
|
||||||
|
<attribute name="directoryName" required="true" isUniqueKey="true" type="string" validationType="requireTrimmedString" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="debug" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="defaultLanguage" type="string" defaultValue="vb" />
|
||||||
|
<attribute name="explicit" type="bool" defaultValue="True" />
|
||||||
|
<element name="expressionBuilders">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="expressionPrefix" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="type" required="true" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="maxBatchGeneratedFileSize" type="int" defaultValue="1000" validationType="integerRange" validationParameter="0,2147483647" />
|
||||||
|
<attribute name="maxBatchSize" type="int" defaultValue="1000" validationType="integerRange" validationParameter="0,2147483647" />
|
||||||
|
<attribute name="numRecompilesBeforeAppRestart" type="int" defaultValue="15" validationType="integerRange" validationParameter="0,2147483647" />
|
||||||
|
<attribute name="strict" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="tempDirectory" type="string" />
|
||||||
|
<attribute name="urlLinePragmas" type="bool" defaultValue="False" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/customErrors">
|
||||||
|
<attribute name="defaultRedirect" type="string" />
|
||||||
|
<collection addElement="error">
|
||||||
|
<attribute name="redirect" required="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="statusCode" required="true" isUniqueKey="true" type="int" validationType="integerRange" validationParameter="100,999" />
|
||||||
|
</collection>
|
||||||
|
<attribute name="mode" type="enum" defaultValue="RemoteOnly">
|
||||||
|
<enum name="RemoteOnly" value="0" />
|
||||||
|
<enum name="On" value="1" />
|
||||||
|
<enum name="Off" value="2" />
|
||||||
|
</attribute>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/deviceFilters">
|
||||||
|
<collection addElement="filter">
|
||||||
|
<attribute name="argument" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="compare" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="type" type="string" />
|
||||||
|
<attribute name="method" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/globalization">
|
||||||
|
<attribute name="culture" type="string" />
|
||||||
|
<attribute name="enableBestFitResponseEncoding" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="enableClientBasedCulture" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="fileEncoding" type="string" />
|
||||||
|
<attribute name="requestEncoding" type="string" defaultValue="utf-8" />
|
||||||
|
<attribute name="resourceProviderFactoryType" type="string" />
|
||||||
|
<attribute name="responseEncoding" type="string" defaultValue="utf-8" />
|
||||||
|
<attribute name="responseHeaderEncoding" type="string" defaultValue="utf-8" />
|
||||||
|
<attribute name="uiCulture" type="string" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/healthMonitoring">
|
||||||
|
<element name="bufferModes">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="maxBufferSize" required="true" type="int" validationType="integerRange" validationParameter="1,2147483647" allowInfinite="true" defaultValue="2147483647" />
|
||||||
|
<attribute name="maxBufferThreads" type="int" validationType="integerRange" validationParameter="1,2147483647" allowInfinite="true" defaultValue="1" />
|
||||||
|
<attribute name="maxFlushSize" required="true" type="int" validationType="integerRange" validationParameter="1,2147483647" allowInfinite="true" defaultValue="2147483647" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="regularFlushInterval" required="true" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483647,1" allowInfinite="true" defaultValue="00:00:01" />
|
||||||
|
<attribute name="urgentFlushInterval" required="true" type="timeSpan" allowInfinite="true" defaultValue="00:00:00" />
|
||||||
|
<attribute name="urgentFlushThreshold" required="true" type="int" validationType="integerRange" validationParameter="1,2147483647" allowInfinite="true" defaultValue="2147483647" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="True" />
|
||||||
|
<element name="eventMappings">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="endEventCode" type="int" validationType="integerRange" validationParameter="0,2147483647" defaultValue="2147483647" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="startEventCode" type="int" validationType="integerRange" validationParameter="0,2147483647" defaultValue="0" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="heartbeatInterval" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483,1" timeSpanFormat="seconds" defaultValue="0" />
|
||||||
|
<element name="profiles">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="custom" type="string" />
|
||||||
|
<attribute name="maxLimit" type="int" validationType="integerRange" validationParameter="0,2147483647" allowInfinite="true" defaultValue="2147483647" />
|
||||||
|
<attribute name="minInstances" type="int" validationType="integerRange" validationParameter="1,2147483647" defaultValue="1" />
|
||||||
|
<attribute name="minInterval" type="timeSpan" allowInfinite="true" defaultValue="00:00:00" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="providers">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="rules">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="custom" type="string" />
|
||||||
|
<attribute name="eventName" required="true" type="string" />
|
||||||
|
<attribute name="maxLimit" type="int" validationType="integerRange" validationParameter="0,2147483647" allowInfinite="true" defaultValue="2147483647" />
|
||||||
|
<attribute name="minInstances" type="int" validationType="integerRange" validationParameter="1,2147483647" defaultValue="1" />
|
||||||
|
<attribute name="minInterval" type="timeSpan" allowInfinite="true" defaultValue="00:00:00" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="profile" type="string" />
|
||||||
|
<attribute name="provider" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/hostingEnvironment">
|
||||||
|
<attribute name="idleTimeout" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483640,60" allowInfinite="true" timeSpanFormat="minutes" defaultValue="Infinite" />
|
||||||
|
<attribute name="shadowCopyBinAssemblies" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="shutdownTimeout" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483647,1" timeSpanFormat="seconds" defaultValue="30" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/httpCookies">
|
||||||
|
<attribute name="domain" type="string" />
|
||||||
|
<attribute name="httpOnlyCookies" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="requireSSL" type="bool" defaultValue="False" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/httpHandlers">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" mergeAppend="false" allowDuplicates="true">
|
||||||
|
<attribute name="path" required="true" isCombinedKey="true" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
<attribute name="validate" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="verb" required="true" isCombinedKey="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/httpModules">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/httpRuntime" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="apartmentThreading" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="appRequestQueueLimit" type="int" validationType="integerRange" validationParameter="1,2147483647" defaultValue="5000" />
|
||||||
|
<attribute name="delayNotificationTimeout" type="timeSpan" timeSpanFormat="seconds" defaultValue="5" />
|
||||||
|
<attribute name="enable" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="enableHeaderChecking" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="enableKernelOutputCache" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="enableVersionHeader" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="executionTimeout" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483647,1" timeSpanFormat="seconds" defaultValue="110" />
|
||||||
|
<attribute name="maxRequestLength" type="int" validationType="integerRange" validationParameter="0,2147483647" defaultValue="4096" />
|
||||||
|
<attribute name="maxWaitChangeNotification" type="int" validationType="integerRange" validationParameter="0,2147483647" defaultValue="0" />
|
||||||
|
<attribute name="minFreeThreads" type="int" validationType="integerRange" validationParameter="0,2147483647" defaultValue="8" />
|
||||||
|
<attribute name="minLocalRequestFreeThreads" type="int" validationType="integerRange" validationParameter="0,2147483647" defaultValue="4" />
|
||||||
|
<attribute name="requestLengthDiskThreshold" type="int" validationType="integerRange" validationParameter="1,2147483647" defaultValue="80" />
|
||||||
|
<attribute name="requireRootedSaveAsPath" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="sendCacheControlHeader" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="shutdownTimeout" type="timeSpan" timeSpanFormat="seconds" defaultValue="90" />
|
||||||
|
<attribute name="useFullyQualifiedRedirectUrl" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="waitChangeNotification" type="int" validationType="integerRange" validationParameter="0,2147483647" defaultValue="0" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/identity" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="impersonate" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="password" type="string" />
|
||||||
|
<attribute name="userName" type="string" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/machineKey">
|
||||||
|
<attribute name="decryption" type="string" validationType="requireTrimmedString" defaultValue="Auto" />
|
||||||
|
<attribute name="decryptionKey" type="string" validationType="requireTrimmedString" defaultValue="AutoGenerate,IsolateApps" />
|
||||||
|
<attribute name="validation" type="enum" defaultValue="SHA1">
|
||||||
|
<enum name="MD5" value="0" />
|
||||||
|
<enum name="SHA1" value="1" />
|
||||||
|
<enum name="3DES" value="2" />
|
||||||
|
<enum name="AES" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="validationKey" type="string" validationType="requireTrimmedString" defaultValue="AutoGenerate,IsolateApps" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/mobileControls">
|
||||||
|
<attribute name="allowCustomAttributes" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="cookielessDataDictionaryType" type="string" defaultValue="System.Web.Mobile.CookielessData" />
|
||||||
|
<collection addElement="device" removeElement="remove" clearElement="clear">
|
||||||
|
<collection addElement="control" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="adapter" required="true" type="string" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
<attribute name="inheritsFrom" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="pageAdapter" type="string" />
|
||||||
|
<attribute name="predicateClass" type="string" />
|
||||||
|
<attribute name="predicateMethod" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
<attribute name="sessionStateHistorySize" type="int" validationType="integerRange" validationParameter="0,2147483647" defaultValue="6" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/pages">
|
||||||
|
<attribute name="asyncTimeout" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483647,1" timeSpanFormat="seconds" defaultValue="45" />
|
||||||
|
<attribute name="autoEventWireup" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="buffer" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="compilationMode" type="enum" defaultValue="Always">
|
||||||
|
<enum name="Auto" value="0" />
|
||||||
|
<enum name="Never" value="1" />
|
||||||
|
<enum name="Always" value="2" />
|
||||||
|
</attribute>
|
||||||
|
<element name="controls">
|
||||||
|
<collection addElement="add" removeElement="remove">
|
||||||
|
<attribute name="assembly" type="string" />
|
||||||
|
<attribute name="namespace" type="string" />
|
||||||
|
<attribute name="src" type="string" />
|
||||||
|
<attribute name="tagName" type="string" />
|
||||||
|
<attribute name="tagPrefix" required="true" type="string" validationType="nonEmptyString" defaultValue="/" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="enableEventValidation" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="enableSessionState" type="enum" defaultValue="true">
|
||||||
|
<enum name="false" value="0" />
|
||||||
|
<enum name="ReadOnly" value="1" />
|
||||||
|
<enum name="true" value="2" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="enableViewState" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="enableViewStateMac" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="maintainScrollPositionOnPostBack" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="masterPageFile" type="string" />
|
||||||
|
<attribute name="maxPageStateFieldLength" type="int" defaultValue="-1" />
|
||||||
|
<element name="namespaces">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="namespace" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
<attribute name="autoImportVBNamespace" type="bool" defaultValue="True" />
|
||||||
|
</element>
|
||||||
|
<attribute name="pageBaseType" type="string" defaultValue="System.Web.UI.Page" />
|
||||||
|
<attribute name="pageParserFilterType" type="string" />
|
||||||
|
<attribute name="smartNavigation" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="styleSheetTheme" type="string" />
|
||||||
|
<element name="tagMapping">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="mappedTagType" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="tagType" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="theme" type="string" />
|
||||||
|
<attribute name="userControlBaseType" type="string" defaultValue="System.Web.UI.UserControl" />
|
||||||
|
<attribute name="validateRequest" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="viewStateEncryptionMode" type="enum" defaultValue="Auto">
|
||||||
|
<enum name="Auto" value="0" />
|
||||||
|
<enum name="Always" value="1" />
|
||||||
|
<enum name="Never" value="2" />
|
||||||
|
</attribute>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/protocols">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="appDomainHandlerType" type="string" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="processHandlerType" type="string" />
|
||||||
|
<attribute name="validate" type="bool" defaultValue="False" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/securityPolicy">
|
||||||
|
<collection addElement="trustLevel">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="policyFile" required="true" type="string" defaultValue="internal" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/sessionPageState">
|
||||||
|
<attribute name="historySize" type="int" validationType="integerRange" validationParameter="1,2147483647" defaultValue="9" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/sessionState">
|
||||||
|
<attribute name="allowCustomSqlDatabase" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="cookieless" type="enum" defaultValue="UseCookies">
|
||||||
|
<enum name="UseUri" value="0" />
|
||||||
|
<enum name="UseCookies" value="1" />
|
||||||
|
<enum name="AutoDetect" value="2" />
|
||||||
|
<enum name="UseDeviceProfile" value="3" />
|
||||||
|
<enum name="true" value="0" />
|
||||||
|
<enum name="false" value="1" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="cookieName" type="string" defaultValue="ASP.NET_SessionId" />
|
||||||
|
<attribute name="customProvider" type="string" />
|
||||||
|
<attribute name="mode" type="enum" defaultValue="InProc">
|
||||||
|
<enum name="Off" value="0" />
|
||||||
|
<enum name="InProc" value="1" />
|
||||||
|
<enum name="StateServer" value="2" />
|
||||||
|
<enum name="SQLServer" value="3" />
|
||||||
|
<enum name="Custom" value="4" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="partitionResolverType" type="string" />
|
||||||
|
<element name="providers">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="regenerateExpiredSessionId" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="sessionIDManagerType" type="string" />
|
||||||
|
<attribute name="sqlCommandTimeout" type="timeSpan" allowInfinite="true" timeSpanFormat="seconds" defaultValue="30" />
|
||||||
|
<attribute name="sqlConnectionString" type="string" defaultValue="data source=localhost;Integrated Security=SSPI" />
|
||||||
|
<attribute name="stateConnectionString" type="string" defaultValue="tcpip=loopback:42424" />
|
||||||
|
<attribute name="stateNetworkTimeout" type="timeSpan" allowInfinite="true" timeSpanFormat="seconds" defaultValue="10" />
|
||||||
|
<attribute name="timeout" type="timeSpan" validationType="timeSpanRange" validationParameter="1,2147483640,60" allowInfinite="true" timeSpanFormat="minutes" defaultValue="20" />
|
||||||
|
<attribute name="useHostingIdentity" type="bool" defaultValue="True" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/siteMap">
|
||||||
|
<attribute name="defaultProvider" type="string" validationType="nonEmptyString" defaultValue="AspNetXmlSiteMapProvider" />
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="True" />
|
||||||
|
<element name="providers">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/trace">
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="localOnly" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="mostRecent" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="pageOutput" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="requestLimit" type="int" validationType="integerRange" validationParameter="0,2147483647" defaultValue="10" />
|
||||||
|
<attribute name="traceMode" type="enum" defaultValue="SortByTime">
|
||||||
|
<enum name="SortByTime" value="1" />
|
||||||
|
<enum name="SortByCategory" value="2" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="writeToDiagnosticsTrace" type="bool" defaultValue="False" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/trust">
|
||||||
|
<attribute name="level" type="string" validationType="nonEmptyString" defaultValue="Full" />
|
||||||
|
<attribute name="originUrl" type="string" />
|
||||||
|
<attribute name="processRequestInApplicationTrust" type="bool" defaultValue="True" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/urlMappings">
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="True" />
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="mappedUrl" required="true" type="string" />
|
||||||
|
<attribute name="url" required="true" isUniqueKey="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/webControls">
|
||||||
|
<attribute name="clientScriptsLocation" type="string" validationType="nonEmptyString" defaultValue="/aspnet_client/{0}/{1}/" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/webParts">
|
||||||
|
<attribute name="enableExport" type="bool" defaultValue="False" />
|
||||||
|
<element name="personalization">
|
||||||
|
<element name="authorization">
|
||||||
|
<collection addElement="allow,deny" mergeAppend="false" allowDuplicates="true">
|
||||||
|
<attribute name="roles" type="string" />
|
||||||
|
<attribute name="users" type="string" />
|
||||||
|
<attribute name="verbs" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="defaultProvider" type="string" validationType="nonEmptyString" defaultValue="AspNetSqlPersonalizationProvider" />
|
||||||
|
<element name="providers">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</element>
|
||||||
|
<element name="transformers">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="type" required="true" type="string" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/webServices">
|
||||||
|
<element name="conformanceWarnings">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="name" isUniqueKey="true" type="flags">
|
||||||
|
<flag name="None" value="0" />
|
||||||
|
<flag name="BasicProfile1_1" value="1" />
|
||||||
|
</attribute>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="diagnostics">
|
||||||
|
<attribute name="suppressReturningExceptions" type="bool" defaultValue="False" />
|
||||||
|
</element>
|
||||||
|
<element name="protocols">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="name" isUniqueKey="true" type="flags">
|
||||||
|
<flag name="Unknown" value="0" />
|
||||||
|
<flag name="HttpSoap" value="1" />
|
||||||
|
<flag name="HttpGet" value="2" />
|
||||||
|
<flag name="HttpPost" value="4" />
|
||||||
|
<flag name="Documentation" value="8" />
|
||||||
|
<flag name="HttpPostLocalhost" value="16" />
|
||||||
|
<flag name="HttpSoap12" value="32" />
|
||||||
|
<flag name="AnyHttpSoap" value="33" />
|
||||||
|
</attribute>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="serviceDescriptionFormatExtensionTypes">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="type" isUniqueKey="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="soapEnvelopeProcessing">
|
||||||
|
<attribute name="strict" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="readTimeout" type="int" defaultValue="2147483647" />
|
||||||
|
</element>
|
||||||
|
<element name="soapExtensionImporterTypes">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="type" isUniqueKey="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="soapExtensionReflectorTypes">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="type" isUniqueKey="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="soapExtensionTypes">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="group" isCombinedKey="true" type="enum" defaultValue="Low">
|
||||||
|
<enum name="High" value="0" />
|
||||||
|
<enum name="Low" value="1" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="priority" isCombinedKey="true" type="int" validationType="integerRange" validationParameter="0,2147483647" defaultValue="0" />
|
||||||
|
<attribute name="type" isCombinedKey="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="soapServerProtocolFactory">
|
||||||
|
<attribute name="type" type="string" />
|
||||||
|
</element>
|
||||||
|
<element name="soapTransportImporterTypes">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="type" isUniqueKey="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="wsdlHelpGenerator">
|
||||||
|
<attribute name="href" type="string" />
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/xhtmlConformance">
|
||||||
|
<attribute name="mode" type="enum" defaultValue="Transitional">
|
||||||
|
<enum name="Transitional" value="0" />
|
||||||
|
<enum name="Legacy" value="1" />
|
||||||
|
<enum name="Strict" value="2" />
|
||||||
|
</attribute>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/caching/cache">
|
||||||
|
<attribute name="disableExpiration" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="disableMemoryCollection" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="percentagePhysicalMemoryUsedLimit" type="int" validationType="integerRange" defaultValue="0" validationParameter="0,100" />
|
||||||
|
<attribute name="privateBytesLimit" type="int64" defaultValue="0" />
|
||||||
|
<attribute name="privateBytesPollTime" type="timeSpan" allowInfinite="true" defaultValue="00:02:00" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/caching/outputCache">
|
||||||
|
<attribute name="enableFragmentCache" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="enableKernelCacheForVaryByStar" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="enableOutputCache" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="omitVaryStar" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="sendCacheControlHeader" type="bool" defaultValue="True" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/caching/outputCacheSettings">
|
||||||
|
<element name="outputCacheProfiles">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="duration" type="int" defaultValue="-1" />
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="location" type="enum">
|
||||||
|
<enum name="Any" value="0" />
|
||||||
|
<enum name="Client" value="1" />
|
||||||
|
<enum name="Downstream" value="2" />
|
||||||
|
<enum name="Server" value="3" />
|
||||||
|
<enum name="None" value="4" />
|
||||||
|
<enum name="ServerAndClient" value="5" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="requireTrimmedString" />
|
||||||
|
<attribute name="noStore" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="sqlDependency" type="string" />
|
||||||
|
<attribute name="varyByContentEncoding" type="string" />
|
||||||
|
<attribute name="varyByControl" type="string" />
|
||||||
|
<attribute name="varyByCustom" type="string" />
|
||||||
|
<attribute name="varyByHeader" type="string" />
|
||||||
|
<attribute name="varyByParam" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/caching/sqlCacheDependency">
|
||||||
|
<element name="databases">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="connectionStringName" required="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="pollTime" type="int" defaultValue="60000" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="pollTime" type="int" defaultValue="60000" />
|
||||||
|
</sectionSchema>
|
||||||
|
</configSchema>
|
@ -0,0 +1,439 @@
|
|||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
.NET Framework configuration schema (beyond ASP.NET).
|
||||||
|
|
||||||
|
Please do not edit this file. To add configuration sections to the schema,
|
||||||
|
put them in .xml files similar to this one, in this directory. They will
|
||||||
|
be picked up automatically at application pool startup.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<configSchema>
|
||||||
|
<sectionSchema name="appSettings">
|
||||||
|
<attribute name="file" type="string" />
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="key" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="value" type="string" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="configProtectedData">
|
||||||
|
<attribute name="defaultProvider" type="string" defaultValue="RsaProtectedConfigurationProvider" />
|
||||||
|
<element name="providers">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="connectionStrings">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="connectionString" required="true" type="string" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="providerName" type="string" defaultValue="System.Data.SqlClient" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.codedom">
|
||||||
|
<element name="compilers">
|
||||||
|
<collection addElement="compiler" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="language" type="string" isCombinedKey="true" />
|
||||||
|
<attribute name="extension" type="string" isCombinedKey="true" />
|
||||||
|
<attribute name="type" type="string" />
|
||||||
|
<attribute name="warningLevel" type="int" />
|
||||||
|
<attribute name="compilerOptions" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.data">
|
||||||
|
<element name="DbProviderFactories">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="invariant" type="string" required="true" isUniqueKey="true" />
|
||||||
|
<attribute name="name" type="string" />
|
||||||
|
<attribute name="description" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.diagnostics">
|
||||||
|
<element name="assert">
|
||||||
|
<attribute name="assertuienabled" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="logfilename" type="string" />
|
||||||
|
</element>
|
||||||
|
<element name="performanceCounters">
|
||||||
|
<attribute name="filemappingsize" type="int" defaultValue="524288" />
|
||||||
|
</element>
|
||||||
|
<element name="sharedListeners">
|
||||||
|
<collection addElement="add" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" />
|
||||||
|
<attribute name="traceOutputOptions" type="flags" defaultValue="None">
|
||||||
|
<flag name="None" value="0" />
|
||||||
|
<flag name="LogicalOperationStack" value="1" />
|
||||||
|
<flag name="DateTime" value="2" />
|
||||||
|
<flag name="Timestamp" value="4" />
|
||||||
|
<flag name="ProcessId" value="8" />
|
||||||
|
<flag name="ThreadId" value="16" />
|
||||||
|
<flag name="Callstack" value="32" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="initializeData" type="string" defaultValue="" />
|
||||||
|
<attribute name="type" type="string" required="true" defaultValue="" />
|
||||||
|
<element name="filter">
|
||||||
|
<attribute name="initializeData" type="string" />
|
||||||
|
<attribute name="type" type="string" />
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="sources">
|
||||||
|
<collection addElement="source" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" type="string" required="true" defaultValue="" />
|
||||||
|
<attribute name="switchName" type="string" />
|
||||||
|
<attribute name="switchValue" type="string" />
|
||||||
|
<attribute name="switchType" type="string" />
|
||||||
|
<element name="listeners">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" />
|
||||||
|
<attribute name="traceOutputOptions" type="flags" defaultValue="None">
|
||||||
|
<flag name="None" value="0" />
|
||||||
|
<flag name="LogicalOperationStack" value="1" />
|
||||||
|
<flag name="DateTime" value="2" />
|
||||||
|
<flag name="Timestamp" value="4" />
|
||||||
|
<flag name="ProcessId" value="8" />
|
||||||
|
<flag name="ThreadId" value="16" />
|
||||||
|
<flag name="Callstack" value="32" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="initializeData" type="string" defaultValue="" />
|
||||||
|
<attribute name="type" type="string" required="true" defaultValue="" />
|
||||||
|
<element name="filter">
|
||||||
|
<attribute name="initializeData" type="string" />
|
||||||
|
<attribute name="type" type="string" />
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="switches">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" defaultValue="" />
|
||||||
|
<attribute name="type" type="string" required="true" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="trace">
|
||||||
|
<attribute name="autoflush" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="indentsize" type="int" defaultValue="4" />
|
||||||
|
<element name="listeners">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" />
|
||||||
|
<attribute name="traceOutputOptions" type="flags" defaultValue="None">
|
||||||
|
<flag name="None" value="0" />
|
||||||
|
<flag name="LogicalOperationStack" value="1" />
|
||||||
|
<flag name="DateTime" value="2" />
|
||||||
|
<flag name="Timestamp" value="4" />
|
||||||
|
<flag name="ProcessId" value="8" />
|
||||||
|
<flag name="ThreadId" value="16" />
|
||||||
|
<flag name="Callstack" value="32" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="initializeData" type="string" defaultValue="" />
|
||||||
|
<attribute name="type" type="string" required="true" defaultValue="" />
|
||||||
|
<element name="filter">
|
||||||
|
<attribute name="initializeData" type="string" />
|
||||||
|
<attribute name="type" type="string" />
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="useGlobalLock" type="bool" defaultValue="True" />
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.windows.forms">
|
||||||
|
<attribute name="jitDebugging" type="bool" defaultValue="False" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.net/authenticationModules">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="type" required="true" isUniqueKey="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.net/connectionManagement">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="address" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="maxconnection" required="true" type="int" defaultValue="1" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.net/defaultProxy">
|
||||||
|
<element name="bypasslist">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowDuplicates="true">
|
||||||
|
<attribute name="address" required="true" isUniqueKey="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="True" />
|
||||||
|
<element name="module">
|
||||||
|
<attribute name="type" type="string" />
|
||||||
|
</element>
|
||||||
|
<element name="proxy">
|
||||||
|
<attribute name="autoDetect" type="enum" defaultValue="Unspecified">
|
||||||
|
<enum name="false" value="0" />
|
||||||
|
<enum name="true" value="1" />
|
||||||
|
<enum name="Unspecified" value="-1" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="bypassonlocal" type="enum" defaultValue="Unspecified">
|
||||||
|
<enum name="false" value="0" />
|
||||||
|
<enum name="true" value="1" />
|
||||||
|
<enum name="Unspecified" value="-1" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="proxyaddress" type="string" />
|
||||||
|
<attribute name="scriptLocation" type="string" />
|
||||||
|
<attribute name="usesystemdefault" type="enum" defaultValue="Unspecified">
|
||||||
|
<enum name="false" value="0" />
|
||||||
|
<enum name="true" value="1" />
|
||||||
|
<enum name="Unspecified" value="-1" />
|
||||||
|
</attribute>
|
||||||
|
</element>
|
||||||
|
<attribute name="useDefaultCredentials" type="bool" defaultValue="False" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.net/requestCaching">
|
||||||
|
<element name="defaultFtpCachePolicy">
|
||||||
|
<attribute name="policyLevel" type="enum" defaultValue="Default">
|
||||||
|
<enum name="Default" value="0" />
|
||||||
|
<enum name="BypassCache" value="1" />
|
||||||
|
<enum name="CacheOnly" value="2" />
|
||||||
|
<enum name="CacheIfAvailable" value="3" />
|
||||||
|
<enum name="Revalidate" value="4" />
|
||||||
|
<enum name="Reload" value="5" />
|
||||||
|
<enum name="NoCacheNoStore" value="6" />
|
||||||
|
</attribute>
|
||||||
|
</element>
|
||||||
|
<element name="defaultHttpCachePolicy">
|
||||||
|
<attribute name="maximumAge" type="timeSpan" defaultValue="10675199.02:48:05.4775807" />
|
||||||
|
<attribute name="maximumStale" type="timeSpan" defaultValue="-10675199.02:48:05.4775808" />
|
||||||
|
<attribute name="minimumFresh" type="timeSpan" defaultValue="-10675199.02:48:05.4775808" />
|
||||||
|
<attribute name="policyLevel" type="enum" defaultValue="Default">
|
||||||
|
<enum name="Default" value="0" />
|
||||||
|
<enum name="BypassCache" value="1" />
|
||||||
|
<enum name="CacheOnly" value="2" />
|
||||||
|
<enum name="CacheIfAvailable" value="3" />
|
||||||
|
<enum name="Revalidate" value="4" />
|
||||||
|
<enum name="Reload" value="5" />
|
||||||
|
<enum name="NoCacheNoStore" value="6" />
|
||||||
|
<enum name="CacheOrNextCacheOnly" value="7" />
|
||||||
|
<enum name="Refresh" value="8" />
|
||||||
|
</attribute>
|
||||||
|
</element>
|
||||||
|
<attribute name="defaultPolicyLevel" type="enum" defaultValue="BypassCache">
|
||||||
|
<enum name="Default" value="0" />
|
||||||
|
<enum name="BypassCache" value="1" />
|
||||||
|
<enum name="CacheOnly" value="2" />
|
||||||
|
<enum name="CacheIfAvailable" value="3" />
|
||||||
|
<enum name="Revalidate" value="4" />
|
||||||
|
<enum name="Reload" value="5" />
|
||||||
|
<enum name="NoCacheNoStore" value="6" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="disableAllCaching" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="isPrivateCache" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="unspecifiedMaximumAge" type="timeSpan" defaultValue="1.00:00:00" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.net/settings">
|
||||||
|
<element name="httpWebRequest">
|
||||||
|
<attribute name="maximumErrorResponseLength" type="int" defaultValue="64" />
|
||||||
|
<attribute name="maximumResponseHeadersLength" type="int" defaultValue="64" />
|
||||||
|
<attribute name="maximumUnauthorizedUploadLength" type="int" defaultValue="-1" />
|
||||||
|
<attribute name="useUnsafeHeaderParsing" type="bool" defaultValue="False" />
|
||||||
|
</element>
|
||||||
|
<element name="ipv6">
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="False" />
|
||||||
|
</element>
|
||||||
|
<element name="performanceCounters">
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="False" />
|
||||||
|
</element>
|
||||||
|
<element name="servicePointManager">
|
||||||
|
<attribute name="checkCertificateName" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="checkCertificateRevocationList" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="dnsRefreshTimeout" type="int" defaultValue="120000" />
|
||||||
|
<attribute name="enableDnsRoundRobin" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="expect100Continue" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="useNagleAlgorithm" type="bool" defaultValue="True" />
|
||||||
|
</element>
|
||||||
|
<element name="socket">
|
||||||
|
<attribute name="alwaysUseCompletionPortsForAccept" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="alwaysUseCompletionPortsForConnect" type="bool" defaultValue="False" />
|
||||||
|
</element>
|
||||||
|
<element name="webProxyScript">
|
||||||
|
<attribute name="downloadTimeout" type="timeSpan" defaultValue="00:02:00" />
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.net/webRequestModules">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="prefix" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="type" type="string" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.net/mailSettings/smtp">
|
||||||
|
<attribute name="deliveryMethod" type="enum" defaultValue="Network">
|
||||||
|
<enum name="Network" value="0" />
|
||||||
|
<enum name="SpecifiedPickupDirectory" value="1" />
|
||||||
|
<enum name="PickupDirectoryFromIis" value="2" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="from" type="string" />
|
||||||
|
<element name="network">
|
||||||
|
<attribute name="defaultCredentials" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="host" type="string" />
|
||||||
|
<attribute name="password" type="string" />
|
||||||
|
<attribute name="port" type="int" defaultValue="25" />
|
||||||
|
<attribute name="userName" type="string" />
|
||||||
|
</element>
|
||||||
|
<element name="specifiedPickupDirectory">
|
||||||
|
<attribute name="pickupDirectoryLocation" type="string" />
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.transactions/defaultSettings">
|
||||||
|
<attribute name="distributedTransactionManagerName" type="string" />
|
||||||
|
<attribute name="timeout" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483647,1" defaultValue="00:01:00" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.transactions/machineSettings">
|
||||||
|
<attribute name="maxTimeout" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483647,1" defaultValue="00:10:00" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/deployment">
|
||||||
|
<attribute name="retail" type="bool" defaultValue="False" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/membership">
|
||||||
|
<attribute name="defaultProvider" type="string" validationType="nonEmptyString" defaultValue="AspNetSqlMembershipProvider" />
|
||||||
|
<attribute name="hashAlgorithmType" type="string" />
|
||||||
|
<element name="providers">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<attribute name="userIsOnlineTimeWindow" type="timeSpan" validationType="timeSpanRange" validationParameter="1,2147483640,60" timeSpanFormat="minutes" defaultValue="15" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/processModel">
|
||||||
|
<attribute name="autoConfig" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="clientConnectedCheck" type="timeSpan" allowInfinite="true" defaultValue="00:00:05" />
|
||||||
|
<attribute name="comAuthenticationLevel" type="enum" defaultValue="Connect">
|
||||||
|
<enum name="None" value="0" />
|
||||||
|
<enum name="Call" value="1" />
|
||||||
|
<enum name="Connect" value="2" />
|
||||||
|
<enum name="Default" value="3" />
|
||||||
|
<enum name="Pkt" value="4" />
|
||||||
|
<enum name="PktIntegrity" value="5" />
|
||||||
|
<enum name="PktPrivacy" value="6" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="comImpersonationLevel" type="enum" defaultValue="Impersonate">
|
||||||
|
<enum name="Default" value="0" />
|
||||||
|
<enum name="Anonymous" value="1" />
|
||||||
|
<enum name="Delegate" value="2" />
|
||||||
|
<enum name="Identify" value="3" />
|
||||||
|
<enum name="Impersonate" value="4" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="cpuMask" type="int" />
|
||||||
|
<attribute name="enable" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="idleTimeout" type="timeSpan" allowInfinite="true" defaultValue="10675199.02:48:05.4775807" />
|
||||||
|
<attribute name="logLevel" type="enum" defaultValue="Errors">
|
||||||
|
<enum name="None" value="0" />
|
||||||
|
<enum name="All" value="1" />
|
||||||
|
<enum name="Errors" value="2" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="maxAppDomains" type="int" validationType="integerRange" validationParameter="1,2147483646" defaultValue="2000" />
|
||||||
|
<attribute name="maxIoThreads" type="int" validationType="integerRange" validationParameter="1,2147483646" defaultValue="20" />
|
||||||
|
<attribute name="maxWorkerThreads" type="int" validationType="integerRange" validationParameter="1,2147483646" defaultValue="20" />
|
||||||
|
<attribute name="memoryLimit" type="int" defaultValue="60" />
|
||||||
|
<attribute name="minIoThreads" type="int" validationType="integerRange" validationParameter="1,2147483646" defaultValue="1" />
|
||||||
|
<attribute name="minWorkerThreads" type="int" validationType="integerRange" validationParameter="1,2147483646" defaultValue="1" />
|
||||||
|
<attribute name="password" type="string" defaultValue="AutoGenerate" />
|
||||||
|
<attribute name="pingFrequency" type="timeSpan" allowInfinite="true" defaultValue="10675199.02:48:05.4775807" />
|
||||||
|
<attribute name="pingTimeout" type="timeSpan" allowInfinite="true" defaultValue="10675199.02:48:05.4775807" />
|
||||||
|
<attribute name="requestLimit" type="int" validationType="integerRange" validationParameter="0,2147483647" allowInfinite="true" defaultValue="2147483647" />
|
||||||
|
<attribute name="requestQueueLimit" type="int" validationType="integerRange" validationParameter="0,2147483647" allowInfinite="true" defaultValue="5000" />
|
||||||
|
<attribute name="responseDeadlockInterval" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483647,1" allowInfinite="true" defaultValue="00:03:00" />
|
||||||
|
<attribute name="responseRestartDeadlockInterval" type="timeSpan" allowInfinite="true" defaultValue="00:03:00" />
|
||||||
|
<attribute name="restartQueueLimit" type="int" validationType="integerRange" validationParameter="0,2147483647" allowInfinite="true" defaultValue="10" />
|
||||||
|
<attribute name="serverErrorMessageFile" type="string" />
|
||||||
|
<attribute name="shutdownTimeout" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483647,1" allowInfinite="true" defaultValue="00:00:05" />
|
||||||
|
<attribute name="timeout" type="timeSpan" allowInfinite="true" defaultValue="10675199.02:48:05.4775807" />
|
||||||
|
<attribute name="userName" type="string" defaultValue="machine" />
|
||||||
|
<attribute name="webGarden" type="bool" defaultValue="False" />
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/profile">
|
||||||
|
<attribute name="automaticSaveEnabled" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="defaultProvider" type="string" validationType="nonEmptyString" defaultValue="AspNetSqlProfileProvider" />
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="inherits" type="string" />
|
||||||
|
<element name="properties">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="allowAnonymous" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="customProviderData" type="string" />
|
||||||
|
<attribute name="defaultValue" type="string" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="provider" type="string" />
|
||||||
|
<attribute name="readOnly" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="serializeAs" type="enum" defaultValue="ProviderSpecific">
|
||||||
|
<enum name="String" value="0" />
|
||||||
|
<enum name="Xml" value="1" />
|
||||||
|
<enum name="Binary" value="2" />
|
||||||
|
<enum name="ProviderSpecific" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="type" type="string" defaultValue="string" />
|
||||||
|
</collection>
|
||||||
|
<collection addElement="group">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="allowAnonymous" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="customProviderData" type="string" />
|
||||||
|
<attribute name="defaultValue" type="string" />
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" validationType="nonEmptyString" />
|
||||||
|
<attribute name="provider" type="string" />
|
||||||
|
<attribute name="readOnly" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="serializeAs" type="enum" defaultValue="ProviderSpecific">
|
||||||
|
<enum name="String" value="0" />
|
||||||
|
<enum name="Xml" value="1" />
|
||||||
|
<enum name="Binary" value="2" />
|
||||||
|
<enum name="ProviderSpecific" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="type" type="string" defaultValue="string" />
|
||||||
|
</collection>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="providers">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.web/roleManager">
|
||||||
|
<attribute name="cacheRolesInCookie" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="cookieName" type="string" validationType="requireTrimmedString" defaultValue=".ASPXROLES" />
|
||||||
|
<attribute name="cookiePath" type="string" validationType="requireTrimmedString" defaultValue="/" />
|
||||||
|
<attribute name="cookieProtection" type="enum" defaultValue="All">
|
||||||
|
<enum name="None" value="0" />
|
||||||
|
<enum name="Validation" value="1" />
|
||||||
|
<enum name="Encryption" value="2" />
|
||||||
|
<enum name="All" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="cookieRequireSSL" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="cookieSlidingExpiration" type="bool" defaultValue="True" />
|
||||||
|
<attribute name="cookieTimeout" type="timeSpan" validationType="timeSpanRange" validationParameter="0,2147483640,60" allowInfinite="true" timeSpanFormat="minutes" defaultValue="30" />
|
||||||
|
<attribute name="createPersistentCookie" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="defaultProvider" type="string" validationType="requireTrimmedString" defaultValue="AspNetSqlRoleProvider" />
|
||||||
|
<attribute name="domain" type="string" />
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="False" />
|
||||||
|
<attribute name="maxCachedResults" type="int" defaultValue="25" />
|
||||||
|
<element name="providers">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.xml.serialization/dateTimeSerialization">
|
||||||
|
<attribute name="mode" type="enum" defaultValue="Roundtrip">
|
||||||
|
<enum name="Default" value="0" />
|
||||||
|
<enum name="Roundtrip" value="1" />
|
||||||
|
<enum name="Local" value="2" />
|
||||||
|
</attribute>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.xml.serialization/schemaImporterExtensions">
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear">
|
||||||
|
<attribute name="name" required="true" isUniqueKey="true" type="string" />
|
||||||
|
<attribute name="type" required="true" type="string" />
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.xml.serialization/xmlSerializer">
|
||||||
|
<attribute name="checkDeserializeAdvances" type="bool" defaultValue="False" />
|
||||||
|
</sectionSchema>
|
||||||
|
</configSchema>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,124 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
WebDAV configuration schema.
|
||||||
|
|
||||||
|
Please do not edit this file. To add configuration sections to the schema,
|
||||||
|
put them in .xml files similar to this one, in this directory. They will
|
||||||
|
be picked up automatically at application pool startup.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<configSchema>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
These settings are always access from the top-level
|
||||||
|
<system.webServer/webdav> section.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<sectionSchema name="system.webServer/webdav/globalSettings">
|
||||||
|
|
||||||
|
<element name="propertyStores">
|
||||||
|
<collection addElement="add" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" />
|
||||||
|
<attribute name="image" type="string" required="true" expanded="true" />
|
||||||
|
<attribute name="image32" type="string" expanded="true" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="lockStores">
|
||||||
|
<collection addElement="add" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" />
|
||||||
|
<attribute name="image" type="string" required="true" expanded="true" />
|
||||||
|
<attribute name="image32" type="string" expanded="true" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
</sectionSchema>
|
||||||
|
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
These settings are always accessed using a query path similar
|
||||||
|
to "MACHINE/WEBROOT/APPHOST/{sitename}". Thus, there is no
|
||||||
|
inheritance from lower levels in the URI hierarchy.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<sectionSchema name="system.webServer/webdav/authoring">
|
||||||
|
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="false" />
|
||||||
|
|
||||||
|
<attribute name="requireSsl" type="bool" defaultValue="false" />
|
||||||
|
|
||||||
|
<attribute name="compatFlags" type="flags" defaultValue="MsAuthorVia, MultiProp, CompactXml, IsHidden, IsCollection">
|
||||||
|
<flag name="None" value="0" />
|
||||||
|
<flag name="MsAuthorVia" value="1" />
|
||||||
|
<flag name="MultiProp" value="2" />
|
||||||
|
<flag name="CompactXml" value="4" />
|
||||||
|
<flag name="IsHidden" value="8" />
|
||||||
|
<flag name="IsCollection" value="16" />
|
||||||
|
</attribute>
|
||||||
|
|
||||||
|
<attribute name="maxAllowedXmlRequestLength" type="uint" defaultValue="1000000" />
|
||||||
|
|
||||||
|
<element name="fileSystem">
|
||||||
|
<attribute name="allowHiddenFiles" type="bool" defaultValue="false" />
|
||||||
|
<attribute name="useTransactionalIo" type="bool" defaultValue="false" />
|
||||||
|
<attribute name="hideChildVirtualDirectories" type="bool" defaultValue="false" />
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="properties">
|
||||||
|
<attribute name="allowAnonymousPropfind" type="bool" defaultValue="false" />
|
||||||
|
<attribute name="allowInfinitePropfindDepth" type="bool" defaultValue="false" />
|
||||||
|
<attribute name="allowCustomProperties" type="bool" defaultValue="true" />
|
||||||
|
<collection addElement="add" removeElement="remove" clearElement="clear" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="xmlNamespace" type="string" isUniqueKey="true" required="true" validationType="nonEmptyString" />
|
||||||
|
<attribute name="propertyStore" type="string" required="true" validationType="nonEmptyString" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="locks" allowUnrecognizedAttributes="true">
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="false" />
|
||||||
|
<attribute name="lockStore" type="string" />
|
||||||
|
<attribute name="requireLockForWriting" type="bool" defaultValue="false" />
|
||||||
|
</element>
|
||||||
|
|
||||||
|
</sectionSchema>
|
||||||
|
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
These settings are always accessed using a URI-based query
|
||||||
|
path similar to "MACHINE/WEBROOT/APPHOST/{sitename}/{uri}".
|
||||||
|
Settings are inherited from lower levels in the URI hierarchy.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<sectionSchema name="system.webServer/webdav/authoringRules">
|
||||||
|
|
||||||
|
<attribute name="defaultAccess" type="flags" defaultValue="None">
|
||||||
|
<flag name="None" value="0" />
|
||||||
|
<flag name="Read" value="1" />
|
||||||
|
<flag name="Write" value="2" />
|
||||||
|
<flag name="Source" value="16" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="allowNonMimeMapFiles" type="bool" defaultValue="true" />
|
||||||
|
<attribute name="defaultMimeType" type="string" defaultValue="application/octet-stream" />
|
||||||
|
<collection addElement="add" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="users" type="string" isCombinedKey="true" />
|
||||||
|
<attribute name="roles" type="string" isCombinedKey="true" />
|
||||||
|
<attribute name="path" type="string" isCombinedKey="true" validationType="nonEmptyString" />
|
||||||
|
<attribute name="access" type="flags" defaultValue="Read">
|
||||||
|
<flag name="None" value="0" />
|
||||||
|
<flag name="Read" value="1" />
|
||||||
|
<flag name="Write" value="2" />
|
||||||
|
<flag name="Source" value="16" />
|
||||||
|
</attribute>
|
||||||
|
</collection>
|
||||||
|
|
||||||
|
</sectionSchema>
|
||||||
|
|
||||||
|
</configSchema>
|
||||||
|
|
@ -0,0 +1,18 @@
|
|||||||
|
<configSchema>
|
||||||
|
<sectionSchema name="system.webServer/management/dbManager">
|
||||||
|
<attribute name="allowClientConnectionStrings" type="bool" defaultValue="true"/>
|
||||||
|
<element name="DBProviders">
|
||||||
|
<collection addElement="provider">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" />
|
||||||
|
<attribute name="providerName" type="string" required="true"/>
|
||||||
|
<attribute name="type" type="string" required="true"/>
|
||||||
|
<element name="databaseBackup">
|
||||||
|
<attribute name="backupEnabled" type="bool" defaultValue="false"/>
|
||||||
|
<attribute name="restoreEnabled" type="bool" defaultValue="false"/>
|
||||||
|
<attribute name="customBackupType" type="string" />
|
||||||
|
<attribute name="backupPath" type="string" />
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
</configSchema>
|
@ -0,0 +1,264 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
IIS URL Rewrite configuration schema.
|
||||||
|
|
||||||
|
** Please DO NOT edit this file yourself. **
|
||||||
|
|
||||||
|
If you want to add configuration sections to the schema, you may place
|
||||||
|
them in .xml files similar to this one, in this directory. They will be
|
||||||
|
picked up automatically on startup.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<configSchema>
|
||||||
|
<sectionSchema name="system.webServer/rewrite/globalRules">
|
||||||
|
<collection addElement="rule" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true"/>
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="true"/>
|
||||||
|
<attribute name="patternSyntax" type="enum" defaultValue="ECMAScript">
|
||||||
|
<enum name="ECMAScript" value="0"/>
|
||||||
|
<enum name="Wildcard" value="1"/>
|
||||||
|
<enum name="ExactMatch" value="2"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="stopProcessing" type="bool" defaultValue="false"/>
|
||||||
|
<element name="match">
|
||||||
|
<attribute name="url" type="string" validationType="nonEmptyString"/>
|
||||||
|
<attribute name="ignoreCase" type="bool" defaultValue="true"/>
|
||||||
|
<attribute name="negate" type="bool" defaultValue="false"/>
|
||||||
|
</element>
|
||||||
|
<element name="conditions">
|
||||||
|
<attribute name="logicalGrouping" type="enum" defaultValue="MatchAll">
|
||||||
|
<enum name="MatchAll" value="0"/>
|
||||||
|
<enum name="MatchAny" value="1"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="trackAllCaptures" type="bool" defaultValue="false" />
|
||||||
|
<collection addElement="add">
|
||||||
|
<attribute name="input" type="string" isCombinedKey="true"/>
|
||||||
|
<attribute name="matchType" type="enum" defaultValue="Pattern" isCombinedKey="true">
|
||||||
|
<enum name="Pattern" value="0"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="pattern" type="string" isCombinedKey="true"/>
|
||||||
|
<attribute name="ignoreCase" type="bool" defaultValue="true" isCombinedKey="true"/>
|
||||||
|
<attribute name="negate" type="bool" defaultValue="false" isCombinedKey="true"/>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="serverVariables">
|
||||||
|
<collection addElement="set">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" validationType="requireTrimmedString"/>
|
||||||
|
<attribute name="value" type="string" />
|
||||||
|
<attribute name="replace" type="bool" defaultValue="true" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="action">
|
||||||
|
<attribute name="type" type="enum" defaultValue="None">
|
||||||
|
<enum name="None" value="0"/>
|
||||||
|
<enum name="Rewrite" value="1"/>
|
||||||
|
<enum name="Redirect" value="2"/>
|
||||||
|
<enum name="CustomResponse" value="3"/>
|
||||||
|
<enum name="AbortRequest" value="4"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="url" type="string" validationType="requireTrimmedString"/>
|
||||||
|
<attribute name="appendQueryString" type="bool" defaultValue="true"/>
|
||||||
|
<attribute name="redirectType" type="enum" defaultValue="Permanent">
|
||||||
|
<enum name="Permanent" value="301"/>
|
||||||
|
<enum name="Found" value="302"/>
|
||||||
|
<enum name="SeeOther" value="303"/>
|
||||||
|
<enum name="Temporary" value="307"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="statusCode" type="uint" validationType="integerRange" validationParameter="300,307,exclude" defaultValue="0"/>
|
||||||
|
<attribute name="subStatusCode" type="uint" validationType="integerRange" validationParameter="0,999" defaultValue="0"/>
|
||||||
|
<attribute name="statusReason" type="string"/>
|
||||||
|
<attribute name="statusDescription" type="string"/>
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.webServer/rewrite/allowedServerVariables">
|
||||||
|
<collection addElement="add" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true"/>
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.webServer/rewrite/rules">
|
||||||
|
<collection addElement="rule" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true"/>
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="true"/>
|
||||||
|
<attribute name="patternSyntax" type="enum" defaultValue="ECMAScript">
|
||||||
|
<enum name="ECMAScript" value="0"/>
|
||||||
|
<enum name="Wildcard" value="1"/>
|
||||||
|
<enum name="ExactMatch" value="2"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="stopProcessing" type="bool" defaultValue="false"/>
|
||||||
|
<element name="match">
|
||||||
|
<attribute name="url" type="string" validationType="nonEmptyString"/>
|
||||||
|
<attribute name="ignoreCase" type="bool" defaultValue="true"/>
|
||||||
|
<attribute name="negate" type="bool" defaultValue="false"/>
|
||||||
|
</element>
|
||||||
|
<element name="conditions">
|
||||||
|
<attribute name="logicalGrouping" type="enum" defaultValue="MatchAll">
|
||||||
|
<enum name="MatchAll" value="0"/>
|
||||||
|
<enum name="MatchAny" value="1"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="trackAllCaptures" type="bool" defaultValue="false" />
|
||||||
|
<collection addElement="add">
|
||||||
|
<attribute name="input" type="string"/>
|
||||||
|
<attribute name="matchType" type="enum" defaultValue="Pattern">
|
||||||
|
<enum name="Pattern" value="0"/>
|
||||||
|
<enum name="IsFile" value="1"/>
|
||||||
|
<enum name="IsDirectory" value="2"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="pattern" type="string"/>
|
||||||
|
<attribute name="ignoreCase" type="bool" defaultValue="true"/>
|
||||||
|
<attribute name="negate" type="bool" defaultValue="false"/>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="serverVariables">
|
||||||
|
<collection addElement="set">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" validationType="requireTrimmedString"/>
|
||||||
|
<attribute name="value" type="string" />
|
||||||
|
<attribute name="replace" type="bool" defaultValue="true" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="action">
|
||||||
|
<attribute name="type" type="enum" defaultValue="None">
|
||||||
|
<enum name="None" value="0"/>
|
||||||
|
<enum name="Rewrite" value="1"/>
|
||||||
|
<enum name="Redirect" value="2"/>
|
||||||
|
<enum name="CustomResponse" value="3"/>
|
||||||
|
<enum name="AbortRequest" value="4"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="url" type="string" validationType="requireTrimmedString"/>
|
||||||
|
<attribute name="appendQueryString" type="bool" defaultValue="true"/>
|
||||||
|
<attribute name="logRewrittenUrl" type="bool" defaultValue="false"/>
|
||||||
|
<attribute name="redirectType" type="enum" defaultValue="Permanent">
|
||||||
|
<enum name="Permanent" value="301"/>
|
||||||
|
<enum name="Found" value="302"/>
|
||||||
|
<enum name="SeeOther" value="303"/>
|
||||||
|
<enum name="Temporary" value="307"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="statusCode" type="uint" validationType="integerRange" validationParameter="300,307,exclude"/>
|
||||||
|
<attribute name="subStatusCode" type="uint" validationType="integerRange" validationParameter="0,999" defaultValue="0"/>
|
||||||
|
<attribute name="statusReason" type="string"/>
|
||||||
|
<attribute name="statusDescription" type="string"/>
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.webServer/rewrite/outboundRules">
|
||||||
|
<attribute name="rewriteBeforeCache" type="bool" defaultValue="false" />
|
||||||
|
|
||||||
|
<element name="customTags">
|
||||||
|
<collection addElement="tags" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true"/>
|
||||||
|
<collection addElement="tag" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="name" type="string" required="true" isCombinedKey="true" validationType="nonEmptyString" />
|
||||||
|
<attribute name="attribute" type="string" required="true" isCombinedKey="true" validationType="nonEmptyString"/>
|
||||||
|
</collection>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="preConditions">
|
||||||
|
<collection addElement="preCondition" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true"/>
|
||||||
|
<attribute name="logicalGrouping" type="enum" defaultValue="MatchAll">
|
||||||
|
<enum name="MatchAll" value="0"/>
|
||||||
|
<enum name="MatchAny" value="1"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="patternSyntax" type="enum" defaultValue="ECMAScript">
|
||||||
|
<enum name="ECMAScript" value="0"/>
|
||||||
|
<enum name="Wildcard" value="1"/>
|
||||||
|
<enum name="ExactMatch" value="2"/>
|
||||||
|
</attribute>
|
||||||
|
<collection addElement="add">
|
||||||
|
<attribute name="input" type="string" isCombinedKey="true"/>
|
||||||
|
<attribute name="matchType" type="enum" defaultValue="Pattern" isCombinedKey="true">
|
||||||
|
<enum name="Pattern" value="0" isCombinedKey="true"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="pattern" type="string" isCombinedKey="true"/>
|
||||||
|
<attribute name="ignoreCase" type="bool" defaultValue="true" isCombinedKey="true"/>
|
||||||
|
<attribute name="negate" type="bool" defaultValue="false" isCombinedKey="true"/>
|
||||||
|
</collection>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<collection addElement="rule" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true"/>
|
||||||
|
<attribute name="preCondition" type="string"/>
|
||||||
|
<attribute name="enabled" type="bool" defaultValue="true"/>
|
||||||
|
<attribute name="patternSyntax" type="enum" defaultValue="ECMAScript">
|
||||||
|
<enum name="ECMAScript" value="0"/>
|
||||||
|
<enum name="Wildcard" value="1"/>
|
||||||
|
<enum name="ExactMatch" value="2"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="stopProcessing" type="bool" defaultValue="false"/>
|
||||||
|
<element name="match">
|
||||||
|
<attribute name="filterByTags" type="flags" default="None">
|
||||||
|
<flag name="None" value="0"/>
|
||||||
|
<flag name="A" value="1"/> <!--href-->
|
||||||
|
<flag name="Area" value="2"/> <!--href-->
|
||||||
|
<flag name="Base" value="4"/> <!--href-->
|
||||||
|
<flag name="Form" value="8"/> <!--action-->
|
||||||
|
<flag name="Frame" value="16"/> <!--src,longdesc-->
|
||||||
|
<flag name="Head" value="32"/> <!--profile-->
|
||||||
|
<flag name="IFrame" value="64"/> <!--src,longdesc-->
|
||||||
|
<flag name="Img" value="128"/> <!--src,longdesc,usemap-->
|
||||||
|
<flag name="Input" value="256"/> <!--src,usemap-->
|
||||||
|
<flag name="Link" value="512"/> <!--href-->
|
||||||
|
<flag name="Script" value="1024"/> <!--src-->
|
||||||
|
<flag name="CustomTags" value="32768"/> <!--Use filter attribute-->
|
||||||
|
</attribute>
|
||||||
|
<attribute name="customTags" type="string"/>
|
||||||
|
<attribute name="serverVariable" type="string" />
|
||||||
|
<attribute name="pattern" type="string"/>
|
||||||
|
<attribute name="occurrences" type="int64" defaultValue="0"/>
|
||||||
|
<attribute name="ignoreCase" type="bool" defaultValue="true"/>
|
||||||
|
<attribute name="negate" type="bool" defaultValue="false"/>
|
||||||
|
</element>
|
||||||
|
<element name="conditions">
|
||||||
|
<attribute name="logicalGrouping" type="enum" defaultValue="MatchAll">
|
||||||
|
<enum name="MatchAll" value="0"/>
|
||||||
|
<enum name="MatchAny" value="1"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="trackAllCaptures" type="bool" defaultValue="true" />
|
||||||
|
<collection addElement="add">
|
||||||
|
<attribute name="input" type="string" isCombinedKey="true"/>
|
||||||
|
<attribute name="matchType" type="enum" defaultValue="Pattern" isCombinedKey="true">
|
||||||
|
<enum name="Pattern" value="0"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="pattern" type="string" isCombinedKey="true"/>
|
||||||
|
<attribute name="ignoreCase" type="bool" defaultValue="true" isCombinedKey="true"/>
|
||||||
|
<attribute name="negate" type="bool" defaultValue="false" isCombinedKey="true"/>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="action">
|
||||||
|
<attribute name="type" type="enum" defaultValue="None">
|
||||||
|
<enum name="None" value="0"/>
|
||||||
|
<enum name="Rewrite" value="1"/>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="value" type="string" />
|
||||||
|
<attribute name="replace" type="bool" defaultValue="true"/>
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.webServer/rewrite/providers">
|
||||||
|
<collection addElement="provider" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" validationType="requireTrimmedString"/>
|
||||||
|
<attribute name="type" type="string" required="true" validationType="requireTrimmedString" />
|
||||||
|
<element name="settings">
|
||||||
|
<collection addElement="add" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="key" type="string" required="true" isUniqueKey="true" validationType="nonEmptyString" />
|
||||||
|
<attribute name="value" type="string" />
|
||||||
|
<attribute name="encryptedValue" type="string" encrypted="true" defaultValue="[enc:AesProvider::enc]" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
<sectionSchema name="system.webServer/rewrite/rewriteMaps">
|
||||||
|
<collection addElement="rewriteMap" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="name" type="string" required="true" isUniqueKey="true" validationType="requireTrimmedString"/>
|
||||||
|
<attribute name="defaultValue" type="string"/>
|
||||||
|
<attribute name="ignoreCase" type="bool" defaultValue="true"/>
|
||||||
|
<collection addElement="add" clearElement="clear" removeElement="remove">
|
||||||
|
<attribute name="key" type="string" required="true" caseSensitive="true" isUniqueKey="true"/>
|
||||||
|
<attribute name="value" type="string"/>
|
||||||
|
</collection>
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
</configSchema>
|
@ -0,0 +1,162 @@
|
|||||||
|
<configSchema>
|
||||||
|
|
||||||
|
<sectionSchema name="system.applicationHost/sites">
|
||||||
|
<collection addElement="site">
|
||||||
|
<attribute name="state" type="enum" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<enum name="Starting" value="0" />
|
||||||
|
<enum name="Started" value="1" />
|
||||||
|
<enum name="Stopping" value="2" />
|
||||||
|
<enum name="Stopped" value="3" />
|
||||||
|
<enum name="Unknown" value="4" />
|
||||||
|
</attribute>
|
||||||
|
<method name="Start" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<method name="Stop" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<element name="bindings">
|
||||||
|
<collection addElement="binding" clearElement="clear">
|
||||||
|
<attribute name="isDsMapperEnabled" type="bool" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<attribute name="certificateHash" type="string" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<attribute name="certificateStoreName" type="string" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<method name="EnableDsMapper" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<method name="DisableDsMapper" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<method name="AddSslCertificate" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<inputElement>
|
||||||
|
<attribute name="certificateHash" type="string" />
|
||||||
|
<attribute name="certificateStoreName" type="string" defaultValue="MY" />
|
||||||
|
</inputElement>
|
||||||
|
</method>
|
||||||
|
<method name="RemoveSslCertificate" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
</sectionSchema>
|
||||||
|
|
||||||
|
<sectionSchema name="system.applicationHost/applicationPools">
|
||||||
|
<collection addElement="add">
|
||||||
|
<attribute name="state" type="enum" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<enum name="Starting" value="0" />
|
||||||
|
<enum name="Started" value="1" />
|
||||||
|
<enum name="Stopping" value="2" />
|
||||||
|
<enum name="Stopped" value="3" />
|
||||||
|
<enum name="Unknown" value="4" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="applicationPoolSid" type="string" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<method name="Start" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<method name="Stop" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<method name="Recycle" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
<element name="workerProcesses" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<collection addElement="workerProcess">
|
||||||
|
<attribute name="processId" type="uint" isUniqueKey="true" />
|
||||||
|
<attribute name="guid" type="string" />
|
||||||
|
<attribute name="state" type="enum">
|
||||||
|
<enum name="Starting" value="0" />
|
||||||
|
<enum name="Running" value="1" />
|
||||||
|
<enum name="Stopping" value="2" />
|
||||||
|
<enum name="Unknown" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="appPoolName" type="string" />
|
||||||
|
<method name="GetRequests" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<inputElement>
|
||||||
|
<attribute name="timeElapsedFilter" type="uint" defaultValue="0" />
|
||||||
|
</inputElement>
|
||||||
|
<outputElement>
|
||||||
|
<collection addElement="request">
|
||||||
|
<attribute name="requestId" type="string" />
|
||||||
|
<attribute name="connectionId" type="string" />
|
||||||
|
<attribute name="verb" type="string" />
|
||||||
|
<attribute name="url" type="string" />
|
||||||
|
<attribute name="siteId" type="uint" />
|
||||||
|
<attribute name="localPort" type="uint" />
|
||||||
|
<attribute name="hostName" type="string" />
|
||||||
|
<attribute name="clientIpAddress" type="string" />
|
||||||
|
<attribute name="timeElapsed" type="uint" />
|
||||||
|
<attribute name="pipeLineState" type="uint" />
|
||||||
|
<attribute name="timeInState" type="uint" />
|
||||||
|
<attribute name="currentModule" type="string" />
|
||||||
|
<attribute name="timeInModule" type="uint" />
|
||||||
|
<attribute name="localIpAddress" type="string" />
|
||||||
|
</collection>
|
||||||
|
</outputElement>
|
||||||
|
</method>
|
||||||
|
<element name="appDomains" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<collection addElement="appDomain">
|
||||||
|
<attribute name="id" type="string" />
|
||||||
|
<attribute name="virtualPath" type="string" />
|
||||||
|
<attribute name="physicalPath" type="string" />
|
||||||
|
<attribute name="siteId" type="uint" />
|
||||||
|
<attribute name="idle" type="uint" />
|
||||||
|
<method name="Unload" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<method name="GetCustomData" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<inputElement>
|
||||||
|
<attribute name="guidIdOfFunctionCall" type="string" />
|
||||||
|
<attribute name="parametersOfFunctionCall" type="string" />
|
||||||
|
</inputElement>
|
||||||
|
<outputElement>
|
||||||
|
<attribute name="data" type="string" />
|
||||||
|
</outputElement>
|
||||||
|
</method>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
</collection>
|
||||||
|
<element name="workerProcesses" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<collection addElement="workerProcess">
|
||||||
|
<attribute name="processId" type="uint" isUniqueKey="true" />
|
||||||
|
<attribute name="guid" type="string" />
|
||||||
|
<attribute name="state" type="enum">
|
||||||
|
<enum name="Starting" value="0" />
|
||||||
|
<enum name="Running" value="1" />
|
||||||
|
<enum name="Stopping" value="2" />
|
||||||
|
<enum name="Unknown" value="3" />
|
||||||
|
</attribute>
|
||||||
|
<attribute name="appPoolName" type="string" />
|
||||||
|
<method name="GetRequests" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<inputElement>
|
||||||
|
<attribute name="timeElapsedFilter" type="uint" defaultValue="0" />
|
||||||
|
</inputElement>
|
||||||
|
<outputElement>
|
||||||
|
<collection addElement="request">
|
||||||
|
<attribute name="requestId" type="string" />
|
||||||
|
<attribute name="connectionId" type="string" />
|
||||||
|
<attribute name="verb" type="string" />
|
||||||
|
<attribute name="url" type="string" />
|
||||||
|
<attribute name="siteId" type="uint" />
|
||||||
|
<attribute name="localPort" type="uint" />
|
||||||
|
<attribute name="hostName" type="string" />
|
||||||
|
<attribute name="clientIpAddress" type="string" />
|
||||||
|
<attribute name="timeElapsed" type="uint" />
|
||||||
|
<attribute name="pipeLineState" type="uint" />
|
||||||
|
<attribute name="timeInState" type="uint" />
|
||||||
|
<attribute name="currentModule" type="string" />
|
||||||
|
<attribute name="timeInModule" type="uint" />
|
||||||
|
<attribute name="localIpAddress" type="string" />
|
||||||
|
</collection>
|
||||||
|
</outputElement>
|
||||||
|
</method>
|
||||||
|
<element name="appDomains" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<collection addElement="appDomain">
|
||||||
|
<attribute name="id" type="string" />
|
||||||
|
<attribute name="virtualPath" type="string" />
|
||||||
|
<attribute name="physicalPath" type="string" />
|
||||||
|
<attribute name="siteId" type="uint" />
|
||||||
|
<attribute name="idle" type="uint" />
|
||||||
|
<method name="Unload" extension="Microsoft.ApplicationHost.RscaExtension" />
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<method name="GetCustomData" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<inputElement>
|
||||||
|
<attribute name="guidIdOfFunctionCall" type="string" />
|
||||||
|
<attribute name="parametersOfFunctionCall" type="string" />
|
||||||
|
</inputElement>
|
||||||
|
<outputElement>
|
||||||
|
<attribute name="data" type="string" />
|
||||||
|
</outputElement>
|
||||||
|
</method>
|
||||||
|
</collection>
|
||||||
|
</element>
|
||||||
|
<element name="applicationPoolsControl" extension="Microsoft.ApplicationHost.RscaExtension">
|
||||||
|
<method name="FlushTokenCache" extension="Microsoft.ApplicationHost.RscaExtension"/>
|
||||||
|
</element>
|
||||||
|
</sectionSchema>
|
||||||
|
|
||||||
|
</configSchema>
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>401.1 - Unauthorized: Access is denied due to invalid credentials.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>401.1 - Unauthorized: Access is denied due to invalid credentials.</h2>
|
||||||
|
<h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>401.2 - Unauthorized: Access is denied due to server configuration.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>401.2 - Unauthorized: Access is denied due to server configuration.</h2>
|
||||||
|
<h3>You do not have permission to view this directory or page using the credentials that you supplied because your Web browser is sending a WWW-Authenticate header field that the Web server is not configured to accept.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>401.3 - Unauthorized: Access is denied due to an ACL set on the requested resource.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>401.3 - Unauthorized: Access is denied due to an ACL set on the requested resource.</h2>
|
||||||
|
<h3>You do not have permission to view this directory or page due to the access control list (ACL) that is configured for this resource on the Web server.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>401.4 - Unauthorized: Authorization failed by filter installed on the Web server.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>401.4 - Unauthorized: Authorization failed by filter installed on the Web server.</h2>
|
||||||
|
<h3>You might not have permission to view this directory or page using the credentials that you supplied. The Web server has a filter installed to verify users connecting to the server and it failed to authenticate your credentials.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>401.5 - Unauthorized: Authorization failed by an ISAPI/CGI application.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>401.5 - Unauthorized: Authorization failed by an ISAPI/CGI application.</h2>
|
||||||
|
<h3>The URL you attempted to reach has an ISAPI or CGI application installed that verifies user credentials before proceeding. This application cannot verify your credentials.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>
|
||||||
|
<h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.1 - Forbidden: Execute access is denied.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.1 - Forbidden: Execute access is denied.</h2>
|
||||||
|
<h3>You have attempted to execute a CGI, ISAPI, or other executable program from a directory that does not allow programs to be executed.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.10 - Forbidden: Web server is configured to deny Execute access.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.10 - Forbidden: Web server is configured to deny Execute access.</h2>
|
||||||
|
<h3>You have attempted to execute a CGI, ISAPI, or other executable program from a directory that does not allow programs to be executed.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.11 - Forbidden: Password has been changed.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.11 - Forbidden: Password has been changed.</h2>
|
||||||
|
<h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.12 - Forbidden: Client certificate is denied access by the server certificate mapper.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.12 - Forbidden: Client certificate is denied access by the server certificate mapper.</h2>
|
||||||
|
<h3>The account to which your client certificate is mapped on the Web server has been denied access to this Web site. A Secure Sockets Layer (SSL) client certificate is used for identifying you as a valid user of the resource.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.13 - Forbidden: Client certificate has been revoked on the Web server.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.13 - Forbidden: Client certificate has been revoked on the Web server.</h2>
|
||||||
|
<h3>Your client certificate was revoked, or the revocation server could not be contacted. A Secure Sockets Layer (SSL) client certificate is used for identifying you as a valid user of the resource.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.14 - Forbidden: Directory listing denied.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.14 - Forbidden: Directory listing denied.</h2>
|
||||||
|
<h3>The Web server is configured not to display a list of the contents of this directory.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.15 - Forbidden: Client access licenses have exceeded limits on the Web server.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.15 - Forbidden: Client access licenses have exceeded limits on the Web server.</h2>
|
||||||
|
<h3>There are too many people accessing the Web site at this time. The Web server has exceeded its Client Access License limit.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.16 - Forbidden: Client certificate is ill-formed or is not trusted by the Web server.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.16 - Forbidden: Client certificate is ill-formed or is not trusted by the Web server.</h2>
|
||||||
|
<h3>Your client certificate is untrusted or invalid. A Secure Sockets Layer (SSL) client certificate is used for identifying you as a valid user of the resource.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.17 - Forbidden: Client certificate has expired or is not yet valid.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.17 - Forbidden: Client certificate has expired or is not yet valid.</h2>
|
||||||
|
<h3>Your client certificate has expired or is not yet valid. A Secure Sockets Layer (SSL) client certificate is used for identifying you as a valid user of the resource.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.18 - Forbidden: Cannot execute requested URL in the current application pool.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.18 - Forbidden: Cannot execute requested URL in the current application pool.</h2>
|
||||||
|
<h3>The specified request cannot be executed in the application pool that is configured for this resource on the Web server.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.19 - Forbidden: Cannot execute CGIs for the client in this application pool.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.19 - Forbidden: Cannot execute CGIs for the client in this application pool.</h2>
|
||||||
|
<h3>The configured user for this application pool does not have sufficient privileges to execute CGI applications.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.2 - Forbidden: Read access is denied.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.2 - Forbidden: Read access is denied.</h2>
|
||||||
|
<h3>There is a problem with the page you are looking for and it cannot be displayed. This error can occur if you are trying to display an HTML page that resides in a directory that is configured to allow Execute or Script permissions only.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.3 - Forbidden: Write access is denied.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.3 - Forbidden: Write access is denied.</h2>
|
||||||
|
<h3>There is a problem saving the page to the Web site. This error can occur if you attempt to upload a file or modify a file in a directory that does not allow Write access.</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>403.4 - Forbidden: SSL is required to view this resource.</title>
|
||||||
|
<style type="text/css">
|
||||||
|
<!--
|
||||||
|
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
||||||
|
fieldset{padding:0 15px 10px 15px;}
|
||||||
|
h1{font-size:2.4em;margin:0;color:#FFF;}
|
||||||
|
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
||||||
|
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
||||||
|
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
||||||
|
background-color:#555555;}
|
||||||
|
#content{margin:0 0 0 2%;position:relative;}
|
||||||
|
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="header"><h1>Server Error</h1></div>
|
||||||
|
<div id="content">
|
||||||
|
<div class="content-container"><fieldset>
|
||||||
|
<h2>403.4 - Forbidden: SSL is required to view this resource.</h2>
|
||||||
|
<h3>The page you are trying to access is secured with Secure Sockets Layer (SSL).</h3>
|
||||||
|
</fieldset></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue