在IIS6上运行的ASP.NET站点,AppDomain影子复制的文件被拒绝访问
我在AppDomains的影子复制功能以及在IIS下运行的ASP.NET网站结合使用了一些麻烦.问题在于,由于权限不足,IIS用户无法读取或执行阴影复制的文件. 我在执行新AppDomain中的代码(通过docallback的回调方法)时会收到以下错误消息: system.io.fileleloadexception:无法加载文件或汇编'my.namespace.semblyname,版本= 0.0.3.2231,culture =中性,publickeytoken = null'或其依赖性之一.访问被拒绝. 融合日志: Assembly manager loaded from: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll Running under executable c:\windows\system32\inetsrv\w3wp.exe --- A detailed error lo
12 2024-04-26
编程技术问答社区
IIS会话隔离问题
我正在使用ShDocVW.InternetExplorer类来产生一个新的Internet Explorer对象,并做一些表格填充的东西(对于某些SharePoint Works).它在我自己的机器中正常工作,该机器以Windows 7为OS.但是,当我在Windows Server 2003计算机中部署相同的内容时,它不会弹出Internet Explorer窗口.当我检查任务管理器时,我可以看到一个新的IExplore进程,但是有会话ID = 0(但是Windows 7中的会话ID = 1).因此,我看到这是关于IIS会话隔离的东西.因此,是否可以将ShDocVW.InternetExplorer实例分配给新的System.Diagnostics.Process并完成此任务?还是我们可以使用会话ID = 1启动新的SHDOCVW.Internetexplorer实例? 预先感谢. 解决方案 yap ...我得到了问题的答案,在IIS中,我们无法使用默认设置的shell执
12 2024-04-26
编程技术问答社区
限制对一个ASMX网络服务的调用数量
我们有IIS6中托管的ASMX Web服务.是否有一种很好的方法可以限制单个IP的一段时间内对服务的电话数量?我们不想提出硬限制(x每小时x次数),但是我们希望能够防止单个用户的尖峰. 我们目前正在调查,以查看我们的防火墙是否能够限制连接尝试.如果我们的防火墙无法限制连接,是否有一种很好的方法来处理此操作?与其试图提出自己的自定义解决方案并重新发明轮子,不如使用现有的实现或策略吗? 解决方案 ASMX Web服务几乎没有可扩展性.如果您有任何选择,则应使用WCF. 您也许可以编写一种从每个操作中调用的方法,它将查看呼叫者IP,检查数据库,并在该IP连接得太多时扔肥皂.不过,这就是所有.您也许可以从soapextension中做到这一点,但是您必须非常小心.
14 2024-04-25
编程技术问答社区
IIS 6.0上的.NET WebRequest超时了
在我的ASP.NET 2.0 Web服务中,我正在尝试访问Google API以翻译一些文本.以下代码正确执行此操作: string result = ""; // create the web request to the Google Translate REST interface System.Net.WebRequest oRequest = System.Net.WebRequest.Create("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + System.Web.HttpUtility.UrlEncode("Text to translate") + "&langpair=" + "en" + "%7C" + "fr"); // make the web call System.Net.WebResponse oResponse = oRequest.Get
14 2024-04-25
编程技术问答社区
冒名顶替和委托
我正在使用模仿来访问UNC共享的文件. var ctx = ((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate(); string level = WindowsIdentity.GetCurrent().ImpersonationLevel); 在使用IIS6的两个Windows 2003服务器上,我在一台服务器上获得了不同的模仿级别:委托在另一台服务器上模仿 . 这导致我无法使用"模仿"级别访问服务器上的UNC共享的问题. 什么可能导致这种差异?我通过Machine.config和IIS设置搜索了应用程序池,站点和虚拟目录 - 但无法找到此问题的原因. 解决方案 听起来像是一台计算机是由您的Active Directory信任委派的,但另一个不是.如果应用程序池标识是网络服务,请确保在AD中标记"信任委托"的计算机帐户. 您可能需要要求您的广告管理员强制复制,然后
18 2024-04-23
编程技术问答社区
如何在.NET中解决同一父IIS虚拟目录中不同站点的绝对URL?
我的目标是在多个网站上共享图像,CSS,JS等.这些网站均在IIS中的同一父虚拟目录下托管.当然,我可以用力编码图像路径,但是我希望.NET能够使用IIS配置来智能地解决URL. . 这是我的文件/虚拟目录结构: Parent Site (Virtual Directory) default.aspx mypage.aspx otherpage.aspx images - logo.jpg css - site.css Subsite1 (Virtual Directory) - default.aspx - products.aspx Subsite2 (Virtual Directory) - default.aspx - products.aspx - miscellaneous.aspx Parent Site,Subsite1和Subsite2都是为 http://parent
10 2024-04-23
编程技术问答社区
IIS 6.0 DirectoryEntry ScriptMaps属性并设置.Net版本
创建网站后,我注意到它将ASP.NET版本设置为1.1.我想在代码中将其更改为2.0.50727版本.我发现在脚本图属性中,有所有文件扩展名和代码映射的字符串列表.但是我还没有弄清楚如何更改连接到.NET的所有值?或者有一种方法可以告诉它使用其他经验. 解决方案 DirectoryEntry sited = new DirectoryEntry(string.Format("IIS://localhost/w3svc/{0}/Root", websiteID.ToString())); sited.Properties["AccessRead"].Add(true); PropertyValueCollection testScriptMap = sited.Properties["ScriptMaps"]; object[] allValues = (object[])testScriptMap.Value; object[] newValues = new object[
12 2024-04-22
编程技术问答社区
从ASP.NET执行一个EXE
我想从ASP.NET MVC应用程序中执行EXE.是的,我知道这样做的固有风险,但不幸的是我确实需要这样做. exe是一个GUI应用程序,但是我通过它的参数迫使它"默默地"运行,以便在zip文件中生成一些数据,然后退出. 执行EXE的代码如下 - 它在我的开发框中的VS2008中运行良好 - 但是当我对实际服务器进行测试(Server 2003 -IIS6)时,它会失败: ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = "C:\....."; psi.Arguments = "-silent -file outFile.zip"; Process proc = new Process(); proc.StartInfo = psi; proc.Start(); proc.WaitF
10 2024-04-22
编程技术问答社区
IIS6 ASP.NET 2.0应用程序缓存-数据存储选项和大量数据的性能
在 iis6 上的ASP.NET 2.0站点中,我想将键/值对存储在应用程序缓存中.每个键将始终是一个具有5个字符长度的字符串,每个键为15-250个字符的字符串长度. 用法方案是,如果存在键,则使用该值否则请查询数据库,然后在缓存中添加新的密钥/值,或者基于某些应用程序逻辑替换现有条目. 在这种情况下,我设想/要求缓存大小到达大约1000个条目,以稳定,并且很少(如果有的话)可以如上所述更改(如果有的话). 在我"自己的性能测试"之前 (1)使用包含SortedDictionary或 的1个缓存对象 (2)允许创建1,000个缓存对象,并将缓存本身用作字典或 (3)对所讨论的数据量无关紧要.如果条目数量增加到10,000或100,000,则在哪种情况下,您的答案会更改? 非常感谢. 解决方案 1000不是大量数据;这将正常工作,但是如果请求之间共享此数据,则需要考虑同步.实际上,A lock可以访问A Dict
10 2024-04-22
编程技术问答社区
使用DirectoryEntry来列举IIS配置数据,获得COME异常
我正在尝试以编程方式管理一组远程IIS 6服务器,但正在撞到墙. 我的客户是Windows 7,我有域名. 相关代码如下: public void Run() { DirectoryEntry W3SVC = new DirectoryEntry("IIS://server/w3svc"); foreach (DirectoryEntry site in W3SVC.Children) { Console.WriteLine(site.Name); } } 执行时,我会收到以下例外: Unhandled Exception: System.Runtime.InteropServices.COMException: Unknown error (0x80005000) at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) at System
10 2024-04-21
编程技术问答社区
.NET / C# String Reference in Code Behind Not Loading Updated Value
我似乎遇到了一个奇怪的问题,字符串引用没有加载更新的值. 简而言之,我替换了包含一堆页面标题的DLL文件(App_code.dll)(想想HTML页面标题),但是当从其他DLL引用时,值不会更新. 这是示例页面的CodeBehind的代码段: this.Master.PageDescription = Constants.Titles.CardInfoPageDescription; 常数类被编译到app_code.dll中,我刚刚替换.我还清除了缓存(在这种情况下为IIS 6),重新启动了机器,并确保我的本地浏览器缓存为空. 但是,当我加载网页时,它不会为常量加载新值.所有网页都是如此. 我可以将其更新以替换该页面的DLL的唯一方法,该页面根本没有更改... 知道为什么这是什么?此字符串引用实际上没有在运行时查找,并内置在DLL的页面? 中 任何帮助都非常感谢! 谢谢 亚当 解决方案 让我猜测:您的常数被暴露为public
6 2024-04-21
编程技术问答社区
如何检测我目前在哪个应用池下运行?(IIS6)
我需要知道如何检测当前的应用程序池,以便以编程方式进行回收利用. 有人知道如何为IIS6做到这一点? 我当前用于回收App-Pool的代码是: /// /// Recycle an application pool /// /// public static void RecycleAppPool(string IIsApplicationPool) { ManagementScope scope = new ManagementScope(@"\\localhost\root\MicrosoftIISv2"); scope.Connect(); ManagementObject appPool = new ManagementObject(scope, ne
8 2024-04-21
编程技术问答社区
如何从ASP.NET关闭机器
我有一台运行Windows Home Server V1的计算机(WHS基于Windows Server 2003,并且是RunningH IIS6),在这里,我在C#vs2008(dotnet 3.5)中构建了一个Rentful Webs服务运行.我想从网络服务中. 1检查某些Windows服务是否正在运行; 2开始某些Windows服务 3停止某些Windows服务 4重新启动机器 5关闭机器 对于1-3,然后我使用模仿将ASPNET用户提升到本地管理员(这只是我在本地安全网络上运行它),然后" ServiceController"来控制服务.这很好. 对于4和5,我有问题,无法正常工作. 如果我使用system.diagnostics.process用参数"/s/f"调用" shutdown.exe"命令,则该过程无需任何错误而执行,但无能为力!没有关闭,也没有任何例外,我不能弄清楚为什么.我已经尝试设置本地管理员用户名和密码,但无济于事,模仿用户呼叫无济于事.
10 2024-04-21
编程技术问答社区
如何使用c#在IIS 6和IIS 7中启用32位应用模式
我想更改使用C#启用32BitapponWin64 属性.我知道与 iis 6 和 iis 7 互动的方式不同.但是我需要两个版本的解决方案. 解决方案 在编程管理IIS 6和IIS 7中存在一些差异. IIS 6使用DirectoryEntry类和metabase数据库API进行编程管理. iis 7使用Microsoft.Web.Administration汇编管理 和ServerManager类. 此外,IIS 6无法同时运行64位和32位工作过程 同时(请参阅此 msdn博客). 因此,将Enable32BitAppOnWin64设置为true iis 6表示所有工人 流程(所有应用程序池)以32位进程运行. iis 7能够同时运行64位和32位工作过程. 这意味着您为特定的应用程序池设置Enable32BitAppOnWin64 而不是所有应用程序池. 您还必须检测IIS的版本才能使用正确的API. 这可以通过从注册表中读取以下dword值
16 2024-04-21
编程技术问答社区
System.Web.Routing.RouteCollection.GetRouteData中出现的异常情况
我在IIS7上运行的ASP.NET MVC代码中的随机时间已经在随机时间获得了两个例外: Exception type: InvalidOperationException Exception message: Collection was modified; enumeration operation may not execute. at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) at System.Collections.Generic.List'1.Enumerator.MoveNextRare() at System.Collections.Generic.List'1.Enumerator.MoveNext() at System.Web.Routing.RouteCollection.GetRouteData(HttpConte
22 2024-04-20
编程技术问答社区
无法打开下载保存对话框
使用以下代码,我无法将Open/保存为文件对话框: public void ProcessRequest(HttpContext context) { string link = context.Request.QueryString["Link"]; string extension = Path.GetExtension(link); string fileName = Path.GetFileName(link); string fullPath = String.Format("{0}\\{1}", context.Server.MapPath("~/Content/Uploads/"), fileName);
14 2024-04-16
编程技术问答社区
托管到iis时无法访问打印机
我正在使用MVC中的RDLC报告,在Visual Studio中运行时,打印操作可以很好地工作,但是当在同一台计算机中设置为IIS时,打印操作不会进行.但是当我将报告返回为PDF时该报告在那里,我可以使用JavaScript打印文件.但是我实际上不需要显示报告,而是想从服务器上打印. public ActionResult GenerateOrder() { try { LocalReport report = new LocalReport(); report.ReportPath = (Server.MapPath("~/Reports/Report1.rdlc")); Export(report); Print(); } catch (Exception Ex) { }
14 2024-04-16
编程技术问答社区
用C#检查应用程序池(IIS 6)的状态
如何使用C#检查IIS6应用程序池的状态? 例如,我想知道它是否正在运行! 预先感谢您的帮助! 解决方案 http://msdn.microsoft/library/ms524962.aspx 您可以检查AppPoolstate属性: protected void status() { string appPoolName = "dev.somesite.com"; string appPoolPath = @"IIS://" + System.Environment.MachineName + "/W3SVC/AppPools/" + appPoolName; int intStatus = 0; try { DirectoryEntry w3svc = new DirectoryEntry(appPoolPath); intSt
16 2024-04-16
编程技术问答社区
在IIS中列举应用程序池
我想知道是否有一种方法可以使用ASP.NET 3.5在本地IIS服务器上列举应用程序池的集合(不是给定池中的应用程序,而是池本身)因此,有人可以提供有关如何完成的链接或示例吗? (我忘了添加IIS版本为6.0). 解决方案 这应该有所帮助: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.DirectoryServices; namespace AppPoolEnum { class Program { static void Main(string[] args) { DirectoryEntries appPools = new DirectoryEntry("IIS://localhost/W3SVC/App
14 2024-04-15
编程技术问答社区