该应用程序的架构是直截了当的.有一个Web应用程序维护帐户持有人数据.处理此数据并根据业务规则的数量更新帐户持有者的状态.此过程使用页面上的按钮启动,并且是一个长时间运行的过程(比如15分钟).开发一个组件来执行此数据处理,该数据处理在内部调用存储过程.大多数业务规则都保存在存储过程中.
为了处理超时,处理是异步完成的(使用线程池或自定义线程或异步回调代理).整个过程在一个交易下运行.如果应用程序池被回收或工作进程被强制终止,我想知道您对事务发生的情况的看法?
我有一个ASP.NET MVC5 Web应用程序配置为在.NET Framework 4.5.1版上运行.但是,我注意到当我得到某种应用程序运行时异常时,黄色服务器错误页面底部显示的版本信息显示如下:
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.34009
为什么这不是4.5.x?
下面的缩短代码可行,但它最终使用ApplicationPool标识,而不是我在数组中指定的特定标识.
声明:
#App pool array positions
$Name = 0
$User = 1
$Pwdx = 2
#Application array positions
$SiteNm = 0
$PhyPath = 1
$PoolNm = 2
#App Pool Settings
$Port="80"
$HostName="*"
$Environment="local"
$Runtime="v4.0"
$Pipeline="0" #Integrated
$Identity="3" #SpecificUser
#Define the App Pools
$Pools = @(3)*2
$Pools[0] = "SomeAppPool","FooBar\SomeUser","S0meUs3rP4ssw0RD"
$Pools[1] = "AnotherAppPool","FooBar\AnotherUser","An0th3rUs3rP4ssw0RD"
Run Code Online (Sandbox Code Playgroud)
执行代码:
Import-Module WebAdministration
#navigate to the app pools root
cd IIS:\AppPools\
foreach($p in $Pools)
{
$AppPoolName = $p[$Name]
$AppPoolUser = $p[$User]
$AppPoolPwd = $p[$Pwdx]
$appPool = New-Item $AppPoolName
$appPool …Run Code Online (Sandbox Code Playgroud) 尝试通过appcmd创建应用程序池时
C:\Windows\System32\inetsrv>appcmd add apppool /name: testname /managedRuntimeVe
rsion: -v4.0 /managedPipelineMode: -Integrated
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
The identifier is not supported in the current command usage. You specified 'testname'.
Run Code Online (Sandbox Code Playgroud)
那么,这有什么问题呢?
我正在开发一个 Windows 服务,它将每 5 分钟获取一次 IIS 应用程序池状态信息并存储在数据库或文本文件中......比如运行或停止。
获取以下异常消息:
Microsoft.Web.Administration.dll 中出现“System.UnauthorizedAccessException”类型的异常,但未在用户代码中处理附加信息:访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))
下面是我试过的代码:
static void Main(string[] args)
{
const double interval60Minutes = 5 * 5 * 1000; // milliseconds to one hour
Timer checkForTime = new Timer(interval60Minutes);
checkForTime.Elapsed += new ElapsedEventHandler(checkForTime_Elapsed);
checkForTime.Enabled = true;
Console.WriteLine("Waiting..");
Console.ReadLine();
}
public static void checkForTime_Elapsed(object sender, ElapsedEventArgs e)
{
GetApplicationPoolNames();
}
public static string GetApplicationPoolNames()
{
ServerManager manager = new ServerManager();
string status;
//string DefaultSiteName = System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName();
//Site defaultSite = manager.Sites[DefaultSiteName];
string appVirtaulPath …Run Code Online (Sandbox Code Playgroud) 我在.Net 4.0上的IIS 7.5上部署了一个Asp.Net MVC 2 Web应用程序.当我选择应用程序池为Asp.Net v4.0 Classic时,我收到以下错误.
HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.
Run Code Online (Sandbox Code Playgroud)
当我选择应用程序池为Asp.Net v4.0 Integrated时,同样的应用程序工作正常.有谁知道这是什么原因?
更新:我按照以下网址中的步骤操作.
http://www.asp.net/mvc/tutorials/using-asp-net-mvc-with-different-versions-of-iis-cs
我已经添加了.mvc扩展名的地图,并修改了路由,如下所示.
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}.mvc/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "Index", id = "" }
Run Code Online (Sandbox Code Playgroud)
现在以下url工作正常,我可以看到Home/Index页面. …
ascx/aspx文件的变化 - 它会重置应用程序吗?有时在开发服务器上它们不会导致它,而在实时服务器上我认为它有时会导致它.规则是什么?
谢谢帕维尔
当回收发生时,我希望将所有新请求移动到新的w3wp(这是自动完成的),并w3wp让它在空闲时退出(无论何时花费).
shutdown time limit应用程序池的配置(我使用IIS 7.0)不会将0作为值.如何w3wp在完成和空闲时让前一个关闭.
我在Windows 2008 x64服务器,ASP.NET MVC和.NET框架4上使用IIS 7.5.
如果我在运行Web应用程序并且用户登录时回收应用程序池,1)用户的会话和关联数据是否会被销毁,他们是否必须再次登录?并且,在我回收失败的那一刻,请求正在进行中,或者IIS会在执行回收之前完成这些请求吗?
在使用应用程序时,回收我的Web应用程序的应用程序池有什么负面影响?
如果是asp.net静态变量,例如.
public static string test;
Run Code Online (Sandbox Code Playgroud)
存在于共享相同应用程序池的2个不同Web应用程序中,还共享其静态变量的值?
如果我在站点1中设置test var:"test="1""我可以从站点2读取吗?
application-pool ×10
iis ×6
asp.net ×5
iis-7 ×3
c# ×2
.net ×1
appcmd ×1
asp.net-mvc ×1
asynchronous ×1
clr ×1
iis-8.5 ×1
iisreset ×1
overlapping ×1
powershell ×1
recycle ×1
session ×1
static ×1