Error: File operation not allowed. Access to route denied
Error: File operation not allowed. Access to route denied
我正在开发一个使用 Silverlight 的项目,我想在其中显示服务器路径的 PDFS 文件,但是当我开始调试我的代码时,我发现了以下异常:
我在以下代码中生成流程的位置:
System.Windows.Browser.HtmlElement myFrame = System.Windows.Browser.HtmlPage.Document.GetElementById("_sl_historyFrame");
if (myFrame != null)
{
DirectoryInfo folderPath = new DirectoryInfo(@"\192.168.1.216\UploadFileMobilePDF\" + transfer.IdTransfer);
foreach (var file in folderPath.EnumerateFiles("*.pdf", SearchOption.AllDirectories))
{
myFrame.SetStyleAttribute("width", "1024");
myFrame.SetStyleAttribute("height", "768");
Uri uri = new Uri(folderPath + file.FullName);
string path = uri.AbsoluteUri.ToString();
myFrame.SetAttribute("src", path);
myFrame.SetStyleAttribute("left", "0");
myFrame.SetStyleAttribute("top", "50");
myFrame.SetStyleAttribute("visibility", "visible");
}
}
实例化 DirectoryInfo class folderPath = new DirectoryInfo ()
时出现错误
不知道是不是silverlight不能有服务器地址的权限
您的应用程序可能没有权限访问您尝试访问的服务器上的文件。
查看 WindowsImpersonationContext 以找到最可能的解决方法。 https://docs.microsoft.com/en-us/dotnet/api/system.security.principal.windowsimpersonationcontext?view=netframework-4.8
您需要一个 class(例如,"MyImpersonator"),它使用 WindowsImpersonationContext 使用有效凭据登录到服务器。有太多细节无法呈现完整的解决方案,但是 使用 class(在其他地方定义)来获取单个文件可能看起来像这样:
using (var impersonator = new MyImpersonator())
{
string name = ConfigurationManager.AppSettings["name"];
string password = ConfigurationManager.AppSettings["pass"];
if (impersonator.LogOnCrossDomain(account, pass))
{
if (File.Exists(filepath))
{
byte[] content = File.ReadAllBytes(filepath);
}
}
}
我正在开发一个使用 Silverlight 的项目,我想在其中显示服务器路径的 PDFS 文件,但是当我开始调试我的代码时,我发现了以下异常:
我在以下代码中生成流程的位置:
System.Windows.Browser.HtmlElement myFrame = System.Windows.Browser.HtmlPage.Document.GetElementById("_sl_historyFrame");
if (myFrame != null)
{
DirectoryInfo folderPath = new DirectoryInfo(@"\192.168.1.216\UploadFileMobilePDF\" + transfer.IdTransfer);
foreach (var file in folderPath.EnumerateFiles("*.pdf", SearchOption.AllDirectories))
{
myFrame.SetStyleAttribute("width", "1024");
myFrame.SetStyleAttribute("height", "768");
Uri uri = new Uri(folderPath + file.FullName);
string path = uri.AbsoluteUri.ToString();
myFrame.SetAttribute("src", path);
myFrame.SetStyleAttribute("left", "0");
myFrame.SetStyleAttribute("top", "50");
myFrame.SetStyleAttribute("visibility", "visible");
}
}
实例化 DirectoryInfo class folderPath = new DirectoryInfo ()
不知道是不是silverlight不能有服务器地址的权限
您的应用程序可能没有权限访问您尝试访问的服务器上的文件。
查看 WindowsImpersonationContext 以找到最可能的解决方法。 https://docs.microsoft.com/en-us/dotnet/api/system.security.principal.windowsimpersonationcontext?view=netframework-4.8
您需要一个 class(例如,"MyImpersonator"),它使用 WindowsImpersonationContext 使用有效凭据登录到服务器。有太多细节无法呈现完整的解决方案,但是 使用 class(在其他地方定义)来获取单个文件可能看起来像这样:
using (var impersonator = new MyImpersonator())
{
string name = ConfigurationManager.AppSettings["name"];
string password = ConfigurationManager.AppSettings["pass"];
if (impersonator.LogOnCrossDomain(account, pass))
{
if (File.Exists(filepath))
{
byte[] content = File.ReadAllBytes(filepath);
}
}
}