相关疑难解决方法(0)

Server.MapPath("."),Server.MapPath("〜"),Server.MapPath(@"\"),Server.MapPath("/").有什么不同?

任何人能解释的区别Server.MapPath("."),Server.MapPath("~"),Server.MapPath(@"\")Server.MapPath("/")

asp.net filesystems directory mapping path

442
推荐指数
2
解决办法
46万
查看次数

ASP.NET MVC - 从Controller中查找App_Data文件夹的绝对路径

从ASP.NET MVC项目中的Controller查找App_Data文件夹的绝对路径的正确方法是什么?我希望能够临时使用.xml文件,我不想硬编码路径.

这不起作用:

[HandleError]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        string path = VirtualPathUtility.ToAbsolute("~/App_Data/somedata.xml");

        //.... do whatever 

        return View();
    }

}
Run Code Online (Sandbox Code Playgroud)

我认为在Web上下文之外VirtualPathUtility.ToAbsolute()不起作用.字符串路径返回"C:\ App_Data\somedata.xml"

我应该在哪里确定MVC应用程序中.xml文件的路径?global.asax并坚持使用应用程序级变量?

.net asp.net-mvc absolute-path

277
推荐指数
6
解决办法
25万
查看次数

Microsoft Web API:您如何做Server.MapPath?

由于Microsoft Web API不是MVC,因此您无法执行以下操作:

var a = Request.MapPath("~");
Run Code Online (Sandbox Code Playgroud)

也不是这个

var b = Server.MapPath("~");
Run Code Online (Sandbox Code Playgroud)

因为它们在System.Web命名空间下,而不是System.Web.Http命名空间.

那么如何计算Web API中的相对服务器路径?
我曾经在MVC中做过类似的事情:

var myFile = Request.MapPath("~/Content/pics/" + filename);
Run Code Online (Sandbox Code Playgroud)

哪个会给我磁盘上的绝对路径:

"C:\inetpub\wwwroot\myWebFolder\Content\pics\mypic.jpg"
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api

231
推荐指数
2
解决办法
12万
查看次数

在ASP.NET MVC中的静态字段内使用Server.MapPath()

我正在构建一个ASP.NET MVC站点,我正在使用Lucene.Net进行搜索查询.我在这里问了一个关于如何在ASP.NET MVC应用程序中正确构建Lucene.Net用法的问题,并被告知最好的方法是将my声明IndexWriterpublic static,以便可以重用它.

以下是我的SearchController顶部的一些代码:

public static string IndexLocation = Server.MapPath("~/lucene");
public static Lucene.Net.Analysis.Standard.StandardAnalyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer();
public static IndexWriter writer = new IndexWriter(IndexLocation,analyzer);
Run Code Online (Sandbox Code Playgroud)

由于writer是静态的,IndexLocation也必须是静态的.因此,编译器给出了以下错误Server.MapPath():

非静态字段,方法或属性'System.Web.Mvc.Controller.Server.get'需要对象引用

没有办法在静态字段中使用Server.MapPath()或类似的东西?我该如何解决这个错误?

c# asp.net-mvc static lucene.net server.mappath

114
推荐指数
2
解决办法
11万
查看次数

如何在asp.net中获取应用程序路径?

如何获取应用程序路径?bin路径

在asp.net中

提前致谢

c# asp.net

34
推荐指数
5
解决办法
6万
查看次数

如何获取Web服务中的当前目录

我正在使用System.IO.Directory.GetCurrentDirectory()来获取我的Web服务中的当前目录,但这不会给我当前目录.如何获取Web服务中的当前目录?

谢谢斯图尔特

c# web-services

32
推荐指数
6
解决办法
8万
查看次数

ASP.NET Web API,从Flex FileReference上载时,MIME多部分流的意外结束

按照ASP.NET上的教程,实现了一个Web API控制器方法,用于执行如下所示的异步文件上载:

public Task<HttpResponseMessage> PostFormData()
{
    // Check if the request contains multipart/form-data.
    if (!Request.Content.IsMimeMultipartContent())
    {
        throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
    }

    string root = HttpContext.Current.Server.MapPath("~/App_Data");
    var provider = new MultipartFormDataStreamProvider(root);

    // Read the form data and return an async task.
    var task = Request.Content.ReadAsMultipartAsync(provider).
        ContinueWith<HttpResponseMessage>(t =>
        {
            if (t.IsFaulted || t.IsCanceled)
            {
                Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception);
            }

            return Request.CreateResponse(HttpStatusCode.OK);
        });

    return task;
}
Run Code Online (Sandbox Code Playgroud)

通过标准的多部分HTML表单上传文件非常有效.但是,当另一个开发人员尝试通过Flex的FileReference类构造的多部分表单上载文件时,会抛出错误:

MIME多部分流的意外结束.MIME多部分消息未完成.

我不知道问题出在Web API或Flex上.我找到了一些没有任何影响的相关修复程序(使用ASP.Net Web API的多部分表单POST),最近发现了这一个("多部分流.MIME多部分消息未完成"webapi上传错误).如果第二个链接成立,是否有人知道它是否在通过Nuget提供的当前版本的Web API中出现?讨论是在5月份,Nuget的最新版本是8月,所以我认为这个修补程序已经部署,并不是我的问题的根本原因.

apache-flex asp.net-mvc asp.net-web-api

25
推荐指数
4
解决办法
4万
查看次数

使用"对象引用未设置为对象实例"运行Quartz作业时出错

我有一个Quartz作业,Application_Start在此期间设置Global.asax.cs

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    Logger.log("About to Setup Retry Job");
    JobScheduler.Start();
}
Run Code Online (Sandbox Code Playgroud)

这会调用该Start方法,然后调度作业.

作业每20秒运行一次并抛出异常.这是我的工作.

public class RetryTempJob : IJob
{
    public async Task Execute(IJobExecutionContext context)
    {
        try
        {
            Logger.log("Executing Job");
            new ProcessOrder().retryFailedOrders();
            //Logger.log("Done Executing Syspro Job");
            await Console.Error.WriteLineAsync("Done Executing Syspro Job");
        }
        catch (Exception se)
        {
            await Console.Error.WriteLineAsync("" + se.InnerException);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

此行引发异常Logger.log("Executing Job");.这是一个静态方法,它打开一个日志文件并写入它.此方法适用于我的网站中的其他位置.

以下是异常消息:{"对象引用未设置为对象的实例."}

InnerException为NULL.这是堆栈:

DarwinsShoppingCart.dll!DarwinsShoppingCart.SharedClasses.JobScheduler.RetrySyspro.Execute(Quartz.IJobExecutionContext context) Line 69 C#
    Quartz.dll!Quartz.Core.JobRunShell.Run(System.Threading.CancellationToken cancellationToken)    Unknown
    mscorlib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<Quartz.Core.JobRunShell.<Run>d__9>(ref Quartz.Core.JobRunShell.<Run>d__9 stateMachine)    Unknown
    Quartz.dll!Quartz.Core.JobRunShell.Run(System.Threading.CancellationToken cancellationToken) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net quartz-scheduler quartz.net

10
推荐指数
1
解决办法
692
查看次数

如何在WCF服务中使用RequestContext MapPath

这篇MSDN文章说:

HttpContext: Current is always null when accessed from within a WCF service. Use RequestContext instead.

我要做的是从我的IIS托管WCF服务加载一些XSD文件.问题是,我无法弄清楚如何在任何旧的vanilla ASP.NET网站中执行Server.MapPath(),例如:

HttpContext.Current.Server.MapPath(schemaUri);

在IIS托管的WCF服务中使用RequestContext的等效方法是什么?

模式位于服务应用程序根目录下的"模式"目录中.它们是使用web.config中的自定义配置部分引用的,如下所示:

<schemas>
    <add uri="~/Schemas/foo.xsd" xmlNamespace="http://foo.bar/types" />
</schemas>
Run Code Online (Sandbox Code Playgroud)

我试图像这样加载:

var schemaUri = HttpContext.Current.Server.MapPath(schema.Uri);

从普通的ASP.NET网站中可以正常工作,而不是IIS托管的WCF服务.

.net c# asp.net wcf xsd

9
推荐指数
1
解决办法
1万
查看次数

ASP.NET中的工作文件夹

我们有一个用ASP.NET 3.5编写的Web应用程序.在其中,我们访问代码隐藏中的文件.(普通的C#文件访问,在页面生命周期中在服务器上完成,这与URL或Web浏览器无关).

在我们的生产系统上,我们在web.config中指定了相关文件的完整路径.我们希望能够在版本控制中的项目中包含该文件的本地副本,然后使用版本控制的web.config中的相对路径指向它,以便签出的副本应用程序可以在Visual Studio的调试器中运行,而无需进行任何配置.

问题是当Web应用程序在调试模式下运行时,其工作目录既不是项目也不是解决方案目录.在Windows或控制台应用程序中,在项目的属性页面中,我可以设置工作目录.但在Web应用程序中我不能.

关于如何设法使这项工作的任何想法?

asp.net working-directory

6
推荐指数
1
解决办法
1万
查看次数

HttpContext.Current.Server null

我有一个Windows服务,它使用类库中的方法与相同的asp.net解决方案.在类库中,我有一个方法如下:

 reader = XmlReader.Create(HttpContext.Current.Server
             .MapPath("~/TestDevice/Data.xml"), settings);
Run Code Online (Sandbox Code Playgroud)

当控制来到这条线.我得到例外.我试图调试代码,发现当服务尝试访问此方法时,HttpContext.Current.Server就是null.什么是替代语法.

我试图从Web应用程序访问此类库方法,它工作正常.

请建议解决方案.

asp.net windows-services asp.net-mvc-2

5
推荐指数
1
解决办法
1万
查看次数

VS 2012和IIS Express.找不到路径'C:\ Program Files(x86)\ IIS Express \〜\ MyPics\My.jpg'的一部分

我正在使用VS 2012开发Asp.Net MVC 4应用程序.在本地运行的应用程序使用IIS Express作为Web服务器.我在尝试访问作为我的解决方案一部分的文件时遇到问题.我有以下操作方法:

public FileContentResult GetImage()
        {
            byte[] imageByte = System.IO.File.ReadAllBytes(@"/MyPics/My.jpg");
            string contentType = "image/jpeg";

            return File(imageByte, contentType);
        }
Run Code Online (Sandbox Code Playgroud)

在第一行中,我收到以下错误:

Could not find a part of the path 'C:\Program Files (x86)\IIS Express\~\MyPics\My.jpg'
Run Code Online (Sandbox Code Playgroud)

我知道上面的路径不正确,但我无法理解为解决这个问题我应该提供什么路径.

关心Pawan Mishra

c# iis-express visual-studio-2012

0
推荐指数
1
解决办法
8233
查看次数