2009-11-16 2 views
0

Привет всем Хорошо, я не разработчик .net Я из PHP, python, и я не уверен, что с этим делать..Net проблема «Незаконные символы в пути».

У меня возникла следующая ошибка при загрузке одного из наших сайтов. Пожалуйста, может кто-то помочь

[ArgumentException: Illegal characters in path.] System.IO.Path.CheckInvalidPathChars(String path) +7491109 System.IO.Path.GetFileName(String path) +19 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize) +16 System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials) +77 System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) +54 System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver) +74 System.Threading.CompressedStack.runTryCode(Object userData) +70 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) +0 System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state) +108 System.Xml.XmlTextReaderImpl.OpenUrl() +186 System.Xml.XmlTextReaderImpl.Read() +208 System.Xml.XPath.XPathDocument.LoadFromReader(XmlReader reader, XmlSpace space) +217 System.Xml.XPath.XPathDocument..ctor(String uri, XmlSpace space) +116 System.Xml.XPath.XPathDocument..ctor(String uri) +6 OpenBay.Utils.XPathUtils.GetNodes(String xpathQuery, String xmlFile) +30 OpenBay.Wms.Controllers.SiteController.SetErrorPages(Site site) +21 OpenBay.Wms.Controllers.SiteController.GetSite(Uri uri, DirectoryInfo dir, String applicationName) +104 OpenBay.Wms.HttpModule.UrlProcessHttpModule.GetSiteParameters(HttpApplication app, RequestInfo info) +172 OpenBay.Wms.HttpModule.UrlProcessHttpModule.ProcessRequest(Object o, EventArgs args) +338 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

thanks guys

+0

Было бы полезно, если бы вы указали путь, чтобы мы могли искать символы, которые не разрешены. – ZippyV

ответ

2

Ваш код будет вызывать System.IO.Path.CheckInvalidPathChars, который, в свою очередь, осуществляет проверку на следующее:

  1. двойные кавычки (")

  2. левой угловой скобки (<)

  3. правый угловой кронштейн (>)

  4. veritical бар (|)

и управляющие символы менее 32 десятичное (пробел).

Поэтому убедитесь, что ваш путь не содержит их.

Edit: comment from Guy Lowe

мой вопрос был мой неэкранированный \ в C: \ делает C: \ фиксированной его

+0

Извините, я не знаю, где находится System.IO.Path.CheckInvalidPathChars. Где я могу найти это? – Ben

+0

Вы найдете это в пространстве имен 'System.IO.Path', важно убедиться, что ваш путь не содержит вышеуказанных символов. – Graviton

+0

Вам нужно импортировать пространство имен 'System.IO' перед использованием класса' Path' (нет необходимости ссылаться на какую-либо dll, поскольку оно объявлено в mscorlib) – Yogesh

0

Nice StackTrace, но неверный путь будет более полезным ,

В моем примере, путь, предоставленный OpenBay.Utils.XPathUtils.GetNodes (строка, строка) содержит некоторые недопустимые аргументы. Используйте System.IO.Path.CheckInvalidPathChars(), чтобы проверить, какие символы недопустимы и, возможно, содержатся в аргументе, предоставленном вышеописанному методу.

+0

Простите, что путь - это только корень домена, мы ничего не изменили на сайте, так что это не так. Где используется System.IO.Path.CheckInvalidPathChars()? – Ben

Смежные вопросы