好的,部署ASP.NET MVC似乎很痛苦.我想在Windows XP(IIS 5.1)上部署我的ASP.NET MVC应用程序,但似乎无法找到如何做到这一点.当我在Web浏览器地址栏中键入应用程序名称时,出现"网站不可用"消息.
IIS 6.0有变通方法,但是IIS 5.1呢?
我有一个只是放逐的线程..我想知道是谁杀了我的线程,为什么.
它发生在我身上我的线程被操作系统杀死,但我想确认一下,如果可能的话就知道它为什么要杀了它.
至于线程,我可以断言它在死亡前至少有40分钟的执行时间,但它突然在5分钟内死亡.
public void RunWorker()
{
Thread worker = new Thread(delegate()
{
try
{
DoSomethingForALongLongTime();
}
catch(Exception e)
{
//Nothing is never logged :(
LogException(e);
throw e;
}
});
worker.IsBackground = true;
worker.SetApartmentState(System.Threading.ApartmentState.STA);
worker.Start();
}
Run Code Online (Sandbox Code Playgroud)
编辑:寻址答案
想到这些事情就把我带到了这个问题,谁杀了我的线程?
PS.用蜡烛棒在客厅里不是Lady Goldent :)
是否可以将Windows XP上的IIS从5.1更新到6?
如果是这样的话?
谢谢.
我在Global.asax.cs中有以下内容
routes.MapRoute(
"Arrival",
"{partnerID}",
new { controller = "Search", action = "Index", partnerID="1000" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
Run Code Online (Sandbox Code Playgroud)
我的SearchController看起来像这样
public class SearchController : Controller
{
// Display search results
public ActionResult Index(int partnerID)
{
ViewData["partnerID"] = partnerID;
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
和Index.aspx目前只显示ViewData ["partnerID"].
我在Windows XP上的IIS中设置了一个名为Test的虚拟目录.
如果我将浏览器指向http:// localhost/Test /,那么我会按预期显示1000.但是,如果我尝试http:// localhost/Test/1000我得到一个页面未找到错误.有任何想法吗?
在虚拟目录中运行MVC有什么特殊注意事项吗?
我正在使用VS 2010和IIS 5开发XP(SP3)机器.
我有两个版本的同一个网站.我们发布了第一个生产版本,因此我将代码分叉到一个新的目录树中,并在IIS中设置新的虚拟目录以指向新的树.这些项目设置为在IIS而不是VS的服务器上运行.主站点是基于MVC 2的项目.
我的问题是,当我在Visual Studio 2010中点击F5开始调试新版本时,我得到一个"无法在Web服务器上开始调试.Web服务器无法找到所请求的资源." 昨天我花了很多时间试图找出它找不到的资源.这发生在它到达"应用程序启动"之前.我终于想到了查看Web日志,发现无论何时我按下F5键,web日志都会显示/debugattach.aspx的DEBUG请求,返回码为404(未找到).如果我在旧版本上运行相同的序列,它会显示相同的内容,但首先使用401代码,然后使用200代码重复请求.
我的第一个想法是VS必须写出一个"debugattach.aspx"文件,然后调用它,也许它没有对目录的写权限,但据我所知,它确实如此.
我已经google了debugattach.aspx,并且返回的所有文章的前几页似乎都是指锁定和超时,主要是在IIS 7和VS 2005上.似乎没有任何东西适用于这种情况.
看看有效的旧版本和没有的旧版本之间有什么不同,唯一的事情是虚拟目录的IIS设置和代码本身的web.config.但是我已经并排浏览了两个站点,并且找不到任何可以解释这种行为的差异.
有人知道他们可以与我分享吗?或者任何人都可以向我指出有关debugattach.aspx究竟是什么/做什么,以及DEBUG HTTP请求的作用和/或VS如何使用它们的任何文档?
提前致谢.
在我的XP Professional框上运行Visual Studio 2008 ASP.NET项目(启动时没有调试)时出现以下错误:
System.Web.HttpException: The current identity (machinename\ASPNET) does not have write access to 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files'.
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
尝试在运行Windows XP的虚拟机上运行Internet信息服务时出现此错误.任何人都有任何想法?
我在ASP.NET 2.0中模拟上下文中启动进程时遇到问题.
我在我的Web服务代码中启动了新的Process.IIS 5.1,.NET 2.0
[WebMethod]
public string HelloWorld()
{
string path = @"C:\KB\GetWindowUser.exe";
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WorkingDirectory = Path.GetDirectoryName(path);
startInfo.FileName = path;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
startInfo.ErrorDialog = false;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
Process docCreateProcess = Process.Start(startInfo);
string errors = docCreateProcess.StandardError.ReadToEnd();
string output = docCreateProcess.StandardOutput.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
"C:\ KB\GetWindowUser.exe"是包含以下代码的控制台应用程序:
static void Main(string[] args)
{
Console.WriteLine("Windows: " + WindowsIdentity.GetCurrent().Name);
}
Run Code Online (Sandbox Code Playgroud)
当我在没有模仿的情况下调用Web服务时,一切正常.
当我打开模拟时,跟随错误写入Web服务代码中的"errors"变量:
未处理的异常:System.Security.SecurityException:访问被拒绝.\ r \n\r \n在System.Security.Principal.WindowsIdentity的System.Security.Principal.WindowsIdentity.GetCurrentInternal(TokenAccessLevels desiredAccess,Boolean threadOnly)\ r \n中.GetCurrent()\ r \n在ObfuscatedMdc.Program.Main(String [] args)\ r …
我想知道<authentication mode="windows">在web.config 中设置的效果是在不同版本的IIS中.
我相信在IIS 5中,它几乎没有效果,因为所有这些都是由Web服务器集成和控制的.
在IIS 6和7上,我相信我可以将Web服务器设置为匿名访问,然后每个托管的Web应用程序可以通过设置模式来确定是否要使用Windows身份验证.也就是说,web.config控制这些IIS版本中的ASP.NET并覆盖服务器.
我正在寻找一份白皮书或某种类型的参考资料,这将不仅仅是我的观察经验
iis-5 ×10
asp.net ×3
c# ×3
.net ×2
asp.net-mvc ×2
iis ×2
iis-6 ×2
deployment ×1
iis-7 ×1
web-config ×1
windows-xp ×1