我发现在某些情况下,我可以在调试时编辑源代码,在使用Visual Studio内置的web服务器而不是IIS中的虚拟目录时是否还有其他优点?使用Cassini而不是IIS的(dis)优点是什么?
我在我的开发环境和IIS 5的本地实例上使用Windows XP。我在几个项目上工作,因此我使用多个虚拟目录来管理所有不同的站点。
有没有什么缺点?
我发现在某些情况下,我可以在调试时编辑源代码,在使用Visual Studio内置的web服务器而不是IIS中的虚拟目录时是否还有其他优点?使用Cassini而不是IIS的(dis)优点是什么?
我在我的开发环境和IIS 5的本地实例上使用Windows XP。我在几个项目上工作,因此我使用多个虚拟目录来管理所有不同的站点。
有没有什么缺点?
内置在Visual Studio的Web服务器被称为卡西尼和这里有一些它的局限性...
如果您在家中使用XP Home做爱好工作,则无法在本地安装IIS。
我觉得MS Web平台安装程序删除了这个限制(我能够在Vista Home上安装IIS) – 2010-03-20 20:27:17
@Dan Finch Vista Home可以运行IIS。 XP Home不能。 – 2010-03-20 20:31:56
安装IISAdmin,并且您可以在IIS 5中设置单独的站点,而不是使用虚拟目录。
尽管一次只运行一个。 – 2009-08-06 05:47:58
这是一个巨大的劣势,只是不现实的 - 只要使用IIS,你可以做任何你想要的,有任何运行。 – PositiveGuy 2012-01-09 05:58:06
内置服务器适用于大型企业,它们不希望开发人员在自己的计算机上拥有任何管理员访问权限来配置IIS。
我很抱歉,为什么地狱会让一家公司(任何规模)想要这样做给开发人员。这很愚蠢。让我们不要使用每个开发人员都需要知道的本地工具 - 在这种情况下,理解并更好地了解IIS是必不可少的,并且可以帮助您成为更好的Web开发人员,并且当您了解IIS时,您可以节省数小时的调试时间网络应用。 – PositiveGuy 2012-01-09 05:55:23
@CoffeeAddict我在其中一家公司工作。我可以看到企业安全如何认为这是一个好主意,但作为一名开发人员,它确实会阻碍我。幸运的是,他们允许那些愿意经历足够的篮球圈的开发者的例外(我总是经历那些篮球)。 – Zarepheth 2014-08-25 21:55:10
内置的服务器不是可配置的,它运行在一个奇怪的端口,所以如果你指望具体的行为可能会很麻烦。
可以在VS中配置端口。项目 - >属性 - >特定端口 – pdavis 2008-09-19 17:22:44
如果您的项目驻留在你仍然可以编辑代码中的IIS目录,只是取决于它是否已经公布或者没有。在调试某些基于权限的场景(如kerberos和ntlm身份验证以及服务器压缩等问题)时,您将遇到Cassini vs IIS上的所有问题。所有Cassini都可以开发,但请确保您发布到IIS时进行广泛的测试。
如果您'web引用'内置web服务器上的web服务的URL,则端口可能会更改。除非您在Project-> Properties选项页面中设置了“特定端口”。
这是我现在习惯的东西。我总是设置一个特定的端口。现在,当有时Web服务器崩溃(我发生了这种情况),我只是改变端口号,一切都很好。我认为重新启动也会解决这个问题。
内置的服务器意味着开发人员不必知道如何设置IIS来测试他们的网站。
你可能会认为这是一个缺点,而且Windows开发者至少应该知道那么多的IIS。或者你可以争辩说,一个不是系统管理员的开发人员根本不应该混淆网络服务器。
内置的网络服务器比IIS稍微弱一点,但不需要安装,所以它只是一个折衷。
您可能并不总是希望您的开发项目暴露在IIS服务器(即使是本地IIS服务器)上,因此内置服务器对此非常有用。
但是,如果您的应用程序要访问某个Web应用程序的规范之外的资源,那么您可能需要在IIS中经常进行调试,以便您的应用程序将以受限制的权限运行,并且您可以看到痛苦点的位置。
There's a bug in the way the built-in server handles HTTPModules - 有a workaround,但我讨厌不得不在生产中永远不需要的代码。
Visual Studio网络服务器对于路径中的//
宽松程度较低。
它将拒绝提供以下链接: http://localhost:52632/main//images/logo.jpg
IIS将执行的操作。
这很不明显,但意味着我们有很多修复操作来摆脱所有//
事件。
卡西尼也不支持传统的ASP页面。这只是老式ASP页面仍然存在的遗留项目的一个问题(如我们的Web应用程序在工作)。
你需要有Visual Studio中运行使用它(正常情况下)
只响应本地主机,所以你不能给的链接http://simon-laptop:37473/app1
的朋友通过网络
大缺点:fiddler难以运行,因为localhost流量不是通过代理发送的。
编辑:使用http://ipv4.fiddler:37473
是得到小提琴手与之合作的最佳途径。
我经常将两全其美并在IIS中创建应用程序,并使用内置的Web服务器进行更高效的调试。
卡西尼是一个轻便的测试网络服务器。这个想法是,开发人员不需要安装IIS并配置为测试他的应用程序。如果你熟悉它,使用IIS,并且你已经安装了它并且你的盒子可以处理它。卡西尼不是一种替代品。
我们也看到了VS内置服务器的一些问题,涉及到一些第三方控件将其脚本放在\ aspnet_client文件夹中。由于该文件夹不存在,当您不在IIS下运行时,控件不起作用。总是使用IIS并避免奇怪的问题似乎更简单。
所有以前的回答都是很好的答案 - 这里有一个卡西尼gottcha可能需要在destkop上的IIS。
Cassini在开发人员的环境中运行,而不是作为IIS用户(IUSR_,IWAM或WinXP x64,w3wp进程)运行。如果您的网站访问外部文件或创建临时文件,这可能会有点痛苦。当您的开发人员以桌面管理员身份运行时,这一点最为明显。
当您移动到服务器IIS时,您在卡西尼中可以访问的内容不起作用。 CACLing与IIS_WPG通常只需要修复,但如果您的开发人员没有考虑到这一点,他们会很快对他们的部署感到沮丧。
卡西尼不支持虚拟目录
一个不同之处,我发现是开发服务器处理不同于IIS不会上传文件。如果上传的文件大于Max_File_Size设置,则无法捕获错误。该页面刚刚死亡,并返回500.
我遇到的另一个缺点是在使用自定义IPrincipal
/IIdentity
的Forms身份验证网站上。卡西尼将在没有任何警告(或通知)的情况下切换AppDomains
。
检查此blog post更多。这让我头痛,我下降卡西尼和坚持与IIS。
当您使用在Vista或Windows 7 UAC的IIS启用,则必须运行Visual Studio具有管理权限,否则不能使用虚拟目录:(
。如果你这样做,你不能拖动从降你的shell到Visual Studio(即使您运行的Explorer.exe作为管理员的一个实例)。
为此我使用卡西尼对于大多数的项目。
另一个DIS-优点是,它通过发送的每个请求gloabal asax文件,其中包含所有图片和样式表的请求,这意味着如果你有代码在那里与文件名相关的东西,比如查找,那么辅助文件也会被处理。
仅供参考,Windows XP的64位自带的IIS 6
看起来像一个第三选项即将推出: IIS Express。
这是一个2年前开始的旧线索。我只是在Google搜寻时偶然发现了UtilDev Cassini。看起来很有希望给我。至少它有能力同时运行多个站点。该功能对我来说非常有用,因为我在2个不同的站点上工作,必须使用IIS不断切换它们。
下面是第三条路的理由:虽然UWS Pro可能更接近比卡西尼(虽然灵感来自卡西尼号,是从UltiDev卡西尼叉的供应商)到IIS,其主要目的是要与ASP.NET一起redistributable应用。
同样通过IIS,您不必担心自动记住并在本地主机url中设置一个愚蠢的端口号。这是与卡西尼直接依赖的东西...屁股巨大的痛苦。谁想记住一些无关紧要的端口号码。只需在IIS.plain中运行该死的网站并且简单。
修复你的项目符号分隔符,并为https和验证评论提供upvoted(单独的答案会让你两票)。 – 2008-09-19 17:20:24
大声笑,我也修复它们:) – pdavis 2008-09-19 17:24:56
“它只响应本地主机请求”......不能强调这一点!这使得它对于真正的Web服务非常没用 – mcjabberz 2009-09-16 20:43:58