Tag: iis 6

IIS 6.0以编程方式 – 创建虚拟目录时出现问题而不将其设置为应用程序

所以我在程序上在IIS 6.0中创建一个虚拟目录,但是我正在关注创建虚拟目录的唯一MSDN(或其他)文档,但是我在的文档 http://msdn.microsoft.com/en-us/library/ms525598(VS.90).aspx 导致我的虚拟目录成为IIS中的应用程序。 我试图使用配置数据库属性页面: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/cde669f1-5714-4159-af95-f334251c8cbd.mspx?mfr=true 但是在选项的大海中,我不确定我需要设置哪些属性来严格地将其规定为虚拟目录: DirectoryEntries vdirs = site.Children; DirectoryEntry newVDir = vdirs.Add(vDirName, (className.Replace(“Service”, “VirtualDir”))); newVDir.Properties[“Path”][0] = phyPath; newVDir.Properties[“AccessScript”][0] = true; newVDir.Properties[“AppFriendlyName”][0] = vDirName; newVDir.Properties[“AppIsolated”][0] = “0”; newVDir.Properties[“AppRoot”][0] = “/LM” + metaBaseFullPath.Substring(metaBaseFullPath.IndexOf(“/”, (“IIS://”.Length))); newVDir.CommitChanges();

在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.GetResponse(); // grab the response stream System.IO.StreamReader oReader = new System.IO.StreamReader(oResponse.GetResponseStream()); […]

使用自定义URL重写器,IIS6和带.htm,.html等的URL

我有一个自定义网站,我正在建立自动url重写使用自定义引擎。 只要页面url没有像.htm或.html那样结束,重写就可以正常工作。 对于这些页面,它直接进入iis 404页面,而不是首先点击我的重写引擎。 我在该网站的IIS6配置的“主目录”部分中有*通配符处理程序,但这些URL似乎被它忽略(如css,jpg,js等等,以便发送到我的网站中的url处理程序)项目)。 我如何设置IIS6强制这些url被发送到处理程序,如果它仍然正常存在,仍然提供页面? 处理程序基本上这样做 if (!File.Exists(Request.Path)) { doMyRewriting(); } 我必须假设使用这样的块(只是和示例,真正的一个做一些其他的东西来格式化Request.Path以适应所有事情)应该运行“doMyRewriting()”如果请求的文件不存在否则它会正常地为页面提供服务。 我错了吗? 如果我特意告诉IIS将.htm和.html页面发送到.NET处理程序,则重写会起作用,但如果页面实际存在则不会提供它。 任何帮助将不胜感激。 提前致谢!

IIS6 ASP.NET 2.0应用程序缓存 – 大量数据的数据存储选项和性能

在IIS6上的ASP.NET 2.0站点中,我想在应用程序缓存中存储键/值对。 每个Key将始终是一个长度为5个字符的字符串,每个值为15到250个字符长度的字符串。 使用场景是每个网页请求将查询一次Cache,如果Key存在则使用Value,否则查询数据库并向Cache添加新的Key / Value或根据某些应用程序逻辑替换现有条目。 在这种情况下,我设想/要求高速缓存大小达到大约1000个条目,其大小将变得稳定并且很少(如果有的话)如上所述地改变。 在我“自己进行性能测试”之前,任何人都有大量缓存数据的经验,以确定Performance是否更适合: (1)使用包含SortedDictionary或1的1个Cache对象 (2)允许创建1,000个Cache对象并使用Cache本身作为字典或 (3)对于有问题的数据量无关紧要。 如果条目数增加到10,000或100,000,您的答案会在哪种情况下发生变化? 非常感谢。

如何从ASP.NET关闭机器

我有一台运行Windows Home Server v1的机器(WHS基于Windows Server 2003并运行IIS6),在这里我运行了一个安静的Web服务,我在C#VS2008(dotnet 3.5)中构建。 从我想要的web服务中; 1检查某些Windows服务是否正在运行; 2启动某些Windows服务3停止某些Windows服务4重新启动机器5关闭机器 对于1-3然后我使用模拟将ASPNET用户提升到本地管理员(只有我在本地安全网络上运行它)然后“ServiceController”来控制服务。 这非常有效。 对于4和5我有问题,无法让它工作。 如果我使用System.Diagnostics.Process调用带有参数“/ s / f”的“shutdown.exe”命令,则该过程执行时没有任何错误但不执行任何操作! 没有关机,没有例外,我无法解决原因。 我已经尝试设置本地管理员用户名和密码,但它没有帮助,并且模拟用户调用没有帮助。 我的代码 string shut_args = “/s /f /t 10”; Process process1 = new Process(); process1.StartInfo.FileName = “shutdown.exe”; process1.StartInfo.WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.System); SecureString password = new SecureString(); foreach (char c in “mypassword”) password.AppendChar(c); process1.StartInfo.Password = password; process1.StartInfo.Domain = “homeserver”; […]

无法加载文件或程序集“app_code”或其依赖项之一

这一直困扰我一段时间了: Could not load file or assembly ‘app_code’ or one of its dependencies. The system cannot find the file specified. 我正在使用visual studio 2008和IIS6,由于某种原因,我得到了这个奇怪的错误。 为什么要加载’app_code’,为什么会失败? 试图解决它/使用exception中的信息找出更多 WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly […]

读取用户会话时出现NULL引用exception(reflection)

我已经使用引用阅读所有用户会话实现了用于读取活动会话的代码,并获取了ASP.NET中所有活动会话的列表 。 Private List getOnlineUsers() { List activeSessions = new List(); object obj = typeof(HttpRuntime).GetProperty(“CacheInternal”, BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null); object[] obj2 = (object[])obj.GetType().GetField(“_caches”, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(obj); for (int i = 0; i < obj2.Length; i++) { Hashtable c2 = (Hashtable)obj2[i].GetType().GetField("_entries", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(obj2[i]); foreach (DictionaryEntry entry in c2) { object o1 = entry.Value.GetType().GetProperty("Value", BindingFlags.NonPublic | […]

无法让Log4Net在我们的WCF应用程序中运行

我们正在尝试使用Log4Net从我们的IIS 6部署的WCF应用程序进行日志记录。 我们正在尝试登录到一个文件,但似乎无法创建日志文件,更不用说看到它们中的日志记录输出了。 web.config的相关部分是: … 使用这种配置,我们可以看到在使用DebugView时我们的应用程序中出现了INFO级别的日志记录,但很明显这是来自于它而不是 片。 有没有我们在web.config中设置失败的东西? 我们为要写入的日志创建的目录是否存在权限问题? 请指出我们明显的错误。

我的ASP.NET App_code更改没有被提取(或缓存?)

救命!! 我在(根级别)App_Code目录下有一个.cs文件,用于检索所请求URL的正确模板(它链接到我们自己的Content Management数据库)。 最初,它工作正常 – 我可以对它进行更改,然后由Web应用程序选择它们。 然后发生了一些事情(不知道是什么),现在无论发生什么变化,它们都无法识别。 即使我删除整个App_Code目录,它也没有区别 – 我似乎仍然在使用App_Code目录中的早期(缓存??)版本。 .cs文件中的代码如下: using System; using Custom.CMS.Facade; using Custom.CMS.BO; public class CMHttpModule : IHttpModule { code here… } 即使我将网站复制到我们的实时服务器后,也会出现同样的问题。 我不明白的是 – 如果我向.cs代码引入故意错误,我仍然会收到编译错误,并且在成功编译时会在C:\ WINDOWS \ Microsoft.NET \ Framework下创建App_Code.xxxx.dll \ v2.0.50727 \ Temporary ASP.NET Files 那么我的Web应用程序实际上正在采用什么版本的App_Code? 如何让它拿起“正确的”? 仅供参考我使用的是C#,Visual Web Developer Express 2008和IIS 6 Web服务器 任何帮助将不胜感激。

限制对ASMX Web服务的调用次数

我们在IIS6中托管了一个asmx Web服务。 是否有一种方法可以限制单个IP在一段时间内对服务的呼叫数量? 我们不想设置硬限制(每小时X次),但我们希望能够防止来自单个用户的峰值。 我们目前正在调查我们的防火墙是否能够限制连接尝试。 如果我们的防火墙无法限制连接,是否有一种以编程方式处理此问题的好方法? 而不是试图提出我们自己的自定义解决方案并重新发明轮子,是否可以使用现有的实施或策略?