cam*_*elt 6 asp.net asp.net-mvc publish windows-server-2008
我最近将我的第一个MVC 2项目发布到商业Web服务器上,运行Windows 2008,并据称支持其他MVC站点没有问题,但一直遇到一些问题.这是该项目的高级结构.如您所见,它非常简单:

但是,在网站发布后,我导航到URL,我得到"HTTP错误403.14 - 禁止访问:Web服务器配置为不列出此目录的内容."
所以,我联系了网络主机,并告诉我必须包含一个默认的登陆页面,例如Default.aspx,Index.aspx等.我怀疑这个响应是准确的,因为我认为MVC路由会处理这个问题,但我按照建议做了,在Default.aspx.cs代码隐藏中添加了一个重定向到我的家庭控制器,但得到了一个HTTP错误404.我添加了每个建议的重定向,类似于本文中的建议:http:// www .58bits.com/blog/CommentView,guid,10b2ddfa-057c-41d0-bdc7-564b212ce896.aspx.
我已经和网络主持人一起来回讨论了这个问题超过一个星期,大约有十几个不同的回答和答案,但我还是找不到解决方法.我确信这是一个很容易解决的问题,但我不知道下一步该尝试什么,或者建议接下来尝试的网络托管支持.
Soooo ......知道StackOverflow社区比我聪明,我的网络托管公司的支持技术结合了一千倍,我希望你能帮我解决这个问题,所以我可以成功发布我的项目并且没有错误地访问它.
有一些可能导致错误的事情:
生产服务器可能没有存储在GAC中的MVC库.为了解决这个问题,所有你所要做的就是进入你的MVC项目的References窗格/文件夹,找到System.Web.Mvc,System.Web.Routing和System.Web.Abstractions.现在,通过Ctrl单击它们来选择它们,并在"属性"窗口中将"复制本地"设置为true.
在发布到服务器之前很难知道是否是这种情况,所以我建议只是将程序集设置为一直复制本地.
您的目标网页可能存在问题.根据我对ASP.NET MVC的经验,我发现IIS需要一个登陆页才能正常运行.我正在使用ASP.NET MVC 2模板中包含的页面.您应该将我的产品与您的产品进行比较,看看您是否拥有所需的一切:
Default.aspx的:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="YourNamespace._Default" %>
<%-- Please do not delete this file. It is used to ensure that ASP.NET MVC is activated by IIS when a user makes a "/" request to the server. --%>
Run Code Online (Sandbox Code Playgroud)
Default.aspx.cs:
using System.Web;
using System.Web.Mvc;
using System.Web.UI;
namespace YourNamespace
{
public partial class _Default : Page
{
public void Page_Load(object sender, System.EventArgs e)
{
// Change the current path so that the Routing handler can correctly interpret
// the request, then restore the original path so that the OutputCache module
// can correctly process the response (if caching is enabled).
string originalPath = Request.Path;
HttpContext.Current.RewritePath(Request.ApplicationPath, false);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
HttpContext.Current.RewritePath(originalPath, false);
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据您获得的第一个HTTP状态代码,可能存在权限问题.必须将包含MVC应用程序的文件夹定义为应用程序并设置为适当的权限.
通过IIS完成这两件事很容易.但是,您可能无法访问IIS; 如果你这样做,你很幸运!
否则,您可以使用该chmod命令通过FTP更改权限.您可以通过Filezilla连接,这是一个非常好的开源FTP客户端,只需通过右键单击+对话框即可.
至于将文件夹定义为应用程序,您应该检查是否可以通过主机提供给您的任何IIS内容来执行此操作.如果没有,请联系他们并要求他们进行设置.
祝好运!希望我帮忙.
| 归档时间: |
|
| 查看次数: |
14098 次 |
| 最近记录: |