2011-10-18 60 views
2

运行下面的代码:IIS - 创建新网站抛出异常

DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/w3svc"); 
int siteId = GetUniqueSiteId(Path); 
private string DEFAULT_WEB_SITE_PHYSICAL_PATH = System.IO.Path.GetPathRoot(Environment.SystemDirectory) + @"inetpub\wwwroot"; 

object[] newsite = new object[] { "Default Web Site", new object[] { ":80:" }, DEFAULT_WEB_SITE_PHYSICAL_PATH, siteId }; 

w3svc.Invoke("CreateNewSite", newsite); 

抛出以下异常:

System.Reflection.TargetInvocationException:异常被抛出通过调用的目标。 ---> System.Runtime.InteropServices.COMException(0x800700B7):当该文件已存在时,无法创建文件。 (异常来自HRESULT:0x800700B7)

我试图只有当“默认网站”不存在时才运行此代码。只有在Windows Server 2003中运行时才会引发异常。 此外,当在每次失败后重试并休眠1秒的循环中运行此代码时,该代码最终在3 reties之后运行并创建默认网站。

任何人都知道可能是什么原因?

回答

0

当“默认网站”存在时,您正在尝试创建“默认网站”。你说自己在网站不存在时工作正常......

+1

这不是我的意思。我编辑了这个问题,使其更加清晰。 “我试图只在”默认网站“不存在时运行此代码。” – galbarm