asp.net发布问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net发布问题相关的知识,希望对你有一定的参考价值。

ASP.NET初学,写了一个ASP.NET网站,配置IIS后在本机通过http://59.67.154.20或者http://127.0.0.1访问成功,但是在局域网的其他机器上无法显示该页~很郁闷,请问为什么?请指定小弟~
权限设置了,但是还是不成,我们要用做服务器的是个机器人,所以更改系统很麻烦~

首先,你要确定你局域网其它的机子也能访问你的机子,再然后看看你的操作系统的设置,我估计你的系统是XP professional 这当然别的机子打不开了。你试试安装个2003 SERVER系统看看。如果你的程序是好的话,是没有出现以上你说的问题的。 参考技术A 安装WINDOWS 2003 SERVER~

XP限制太多,IIS一般权限ASP.NET EVERYONE IIS等,并查看子目录是否也已经有这个权限~

~~~
参考技术B 检查一下IIS上的权限设置

有时发布后的 ASP.Net 404

【中文标题】有时发布后的 ASP.Net 404【英文标题】:ASP.Net 404 After Publish Sometimes 【发布时间】:2017-01-26 16:03:27 【问题描述】:

我有一个在本地运行良好的 MVC 项目。将其发布到开发环境时,我们遇到了一个问题,我们在其中一个页面上得到 404。奇怪的是,这只是偶尔发生,我们通常可以通过再次发布来修复它,直到它消失。只有一页会抛出错误。

到目前为止,我们尝试的是:

在工作和损坏状态下获得项目 dll 的副本。当它处于错误状态时复制工作的 dll 似乎可以解决问题。然而,当我们比较这两个 dll 时,它们完全一样,没有任何区别。

我们检查了 IIS 日志,没有任何异常错误可以指出原因。

在这一点上有点难过。就像我说的那样,我们有一个修复,但在这一点上寻找一些安心。有人对看什么有任何想法吗?

这是索引操作

public ActionResult Index()
                
        localAdmin = false;
        if (!UoW.IsStarted)
        
            UoW.Start();
        
        if (SSDSession.PolicyID > 0)
        
            policyId = SSDSession.PolicyID;
            return SetPolicyInfo();
        
        if (Request.Cookies.Get("policyId") != null)
        
            policyId = Convert.ToInt32(Request.Cookies.Get("policyId").Value);
            SSDSession.PolicyID = policyId;
        
        if (policyId == -1 && SSDSession.User.IsPolicyHolder)
                        
            policyId = bobDao.GetPoliciesByOwnerPartyId(SSDSession.User.PartyID).First().PolicyId;
            SSDSession.PolicyID = policyId;
            return SetPolicyInfo();
        
        if (policyId == -1)
        
            if (!System.Web.HttpContext.Current.Request.IsLocal)
            
                return Redirect("/core/PolicySearch.aspx");
            
            else
            
                policyId = 244;
                SSDSession.PolicyID = policyId;
                localAdmin = true;
                return SetPolicyInfo();
            
        
        else
                        
            return SetPolicyInfo();
        

这是它最后调用的函数

private ActionResult SetPolicyInfo()
    
        if (!UoW.IsStarted)
        
            UoW.Start();
        
        PolicyOverviewModel polOvModel = new PolicyOverviewModel();
        polOvModel.PoliciesSummaries = PopulatePolicies();
        polOvModel.Policy = _policyDataService.GetPolicyById(policyId);
        polOvModel.PolicyStatements = polOvModel.Policy.PolicyDocuments.Where(x => x.DocumentType == Core.Acord.Enumeration.DocumentType.POLICY_STATEMENT)
            .OrderByDescending(x => x.DateCreated).Take(5);
        polOvModel.PolicyPerformance = _policyDataService.GetPolicyPerformance(policyId, SSDSession.CycleDate);
        polOvModel.SettledEvents = _policyDataService.GetRecentSettledEvents(policyId, null);
        polOvModel.PendingEvents = _policyDataService.GetRecentPendingEvents(policyId, null);
        polOvModel.EventDocId = new List<int>();
        polOvModel.PolicyID = policyId.ToString();
        foreach (SettledEvent setEvent in polOvModel.SettledEvents)
        
            var settlementDoc = _policyDataService.GetEventConfirmationDocumentByFileName(setEvent.PolicyID, setEvent.EventQueueID.ToString());
            if (settlementDoc != null)
            
                polOvModel.EventDocId.Add(settlementDoc.ID);
            
            else
            
                polOvModel.EventDocId.Add(-1);
            
        
        return View("Index",polOvModel);
    

【问题讨论】:

你是不是一直检查发布包里的所有文件夹都报错 是的。 404 出现在执行某个控制器的索引操作时。索引视图就在那里,所有代码都在 dll 中以引导它。我们找不到任何丢失的东西。 您的代码中是否有任何极端情况会返回错误的视图 URL。可以分享一下动作方法代码吗 添加了该代码。 404是否有可能是由于policysearch.aspx 【参考方案1】:

我发现了问题。

我在服务器上获取了一份完整文件夹结构的副本,其中包括工作状态和损坏状态。经过比较我们发现有时 Visual Studio 只是不会发布参考 DLL。不知道为什么会出现这个问题,但我们发现该引用没有必要并解决了它。现在我们已经发布了 10 多次,并且没有发生错误。

【讨论】:

以上是关于asp.net发布问题的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Web 窗体和 ASP.NET 网页

将经典 ASP 与 ASP.NET 集成

asp.net程序发布详解

asp.net 4.0 和 asp.net 4.0 集成管道有啥区别?

ASP.NET:将外部变量传递到 <asp:sqldatasource> 标记 ASP.NET 2.0

经典 ASP 和 ASP.NET 集成