当使用IIS表达不适用于远程PC的CSS(When using iis express no css

2019-07-02 13:29发布

我想出了一个需要从远程PC,同时发展与我的asp.net mvc的网站工作。 所以,我将其配置为使用IIS快递。

起初,使用Windows身份验证提出了一个问题。 我的网站应该在Windows域联网工作,所以我想用集成Windows身份验证。 我设法使它在Firefox工作, 如何:Firefox和集成Windows身份验证的IIS表达Windows身份验证 (通过bees73答案)。 但IEXPLORER还要求打印登录/密码,即使我打开它在本地,并指定我的IP,而不是本地主机。

与IE浏览器的问题仍然没有得到解决,但希望这是 - 如果我在凭证打印,它在本地工作。

我的问题是:当我打开我的网站在远程PC(无论是在火狐(无需打印登录/密码)和IE(我必须打印login'n'password))我的页面而不应用样式呈现。 它看起来像没有CSS可用。 但我没有得到任何错误。

在加载页面的源代码,我有行

<link href="/Content/Site.css" rel="stylesheet" type="text/css" />

但是当我试着看的site.css,它说,有一些内部服务器错误。

我觉得我没有正确配置IIS Express和这就是问题所在。 如果是OK,集成Windows身份验证有没有要求用户名和密码的IE浏览器,至少我想工作。

所以,我的配置:

  1. 该项目本身 - 到IIS Express中,Windows身份验证 - 上,匿名 - 关闭。
  2. netsh的HTTP添加urlacl URL = HTTP:// MYIP:MyPort上用户=域名\ mylogin
  3. netsh的HTTP添加iplisten ipaddres = MYIP
  4. 对ApplicationHost.config:

绑定:

 <site name="MySite" id="2"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="D:\..." /> </application> <bindings> <binding protocol="http" bindingInformation="*:myport:localhost" /> <binding protocol="http" bindingInformation="*:myport:myip" /> </bindings> </site> 

验证:

 <sectionGroup name="authentication"> <section name="anonymousAuthentication" overrideModeDefault="Deny" /> ... <section name="windowsAuthentication" overrideModeDefault="Allow" /> </sectionGroup> 

 <authentication> <anonymousAuthentication enabled="false" userName="" /> ... <windowsAuthentication enabled="true"> <providers> <add value="Negotiate" /> <add value="NTLM" /> </providers> </windowsAuthentication> </authentication> 

<add name="AnonymousAuthenticationModule" lockItem="true" /> 

 <location path="MySite"> <system.webServer> <security> <authentication> <anonymousAuthentication enabled="false" /> <windowsAuthentication enabled="true" /> </authentication> </security> </system.webServer> </location> 

Answer 1:

这个问题是在国际空间站快速的netsh和绑定配置连接。 起初我安装它通过我的IP,并导致混淆的错误。

同时寻找在我跑过网络的任何设置IIS快递 。 都是一样的存在,但它在netsh的和IIS 对ApplicationHost.config使用PC名称建议。

所以,我说

netsh http add urlacl url=http://MyPCName:MyPort/ user=everyone

<binding protocol="http" bindingInformation="*:MyPort:MyPCName" />

一个又一个奇迹! 有效。

对于IE浏览器,我不得不关闭 “使用Windows授权”标志,使其工作。 非常感谢互联网浏览器-启用集成Windows身份验证 。 但尽管如此IE仍要求登录名和密码,如果一个IP在URL中使用。 如果使用PC名称它的工作原理默默地。

火狐或者询问用户名和密码(如果一个输入有效的凭据工作),或者你应该申请如何:Firefox和集成Windows身份验证 (在我的问题提到的),然后默默地工作都与知识产权和计算机名称。

希望这可以帮助别人。

编辑

一注:我不得不与administrtor权限推出VS2010。 如果不是这样,我仍然得到HTTP 500错误基础上的坏模拟误差。 因此,它看起来像IIS Express中,通过VS2010没有管理员权限的Windows 7中推出,将无法正常工作。

据我了解,线索是给适当的权限IIS_IUSRS。 但在此之前,它更容易推出VS 2010与管理员的privilages。



Answer 2:

这可能是由于在分辨其中CSS是位于根路径的误差。 您可以使用URL助手尝试解决这个问题。

<link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/Site.css")"  media="screen" />

在Asp.net开发服务器(在Visual Studio环境中) <link href="/Content/Site.css" rel="stylesheet" type="text/css" />将正常工作..但同时IIS托管,根路径不能使用相对路径来解决。 随着网址助手的帮助下,我们可以解决这个问题。 用Firebug,你可以看到资源是否有任何加载错误。

编辑:

在根据在web.config <system.web>部分修改如下。

 <system.web>
  <identity impersonate="true" userName="ServerName\Administrator" password="password"/>
 </system.web>

提供用户名和密码正确的价值观。 你可以尝试给文件夹的权限到IIS用户组( IUSRIIS_IUSR )到应用程序托管的文件夹(右键单击该文件夹托管- > PropertiesSecurity选项卡上,你可以找到用户群,可以给权限)



Answer 3:

尝试放置web.config文件在你Content的文件夹。 并把下面的代码在里面。

<?xml version="1.0"?>

<configuration>
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</configuration>


文章来源: When using iis express no css applied on a remote pc