Visual Studio 2010具有"发布"命令,允许您将Web应用程序项目发布到文件系统位置.我想在我的TeamCity构建服务器上执行此操作,因此我需要使用解决方案运行程序或msbuild.我尝试使用Publish目标,但我认为这可能适用于ClickOnce:
msbuild Project.csproj /t:Publish /p:Configuration=Deploy
Run Code Online (Sandbox Code Playgroud)
我基本上想要完成Web部署项目的功能,但没有加载项.我需要它来编译WAP,删除执行不必要的任何文件,执行任何web.config转换,并将输出复制到指定的位置.
我的解决方案基于Jeff Siver的回答
<Target Name="Deploy">
<MSBuild Projects="$(SolutionFile)"
Properties="Configuration=$(Configuration);DeployOnBuild=true;DeployTarget=Package"
ContinueOnError="false" />
<Exec Command=""$(ProjectPath)\obj\$(Configuration)\Package\$(ProjectName).deploy.cmd" /y /m:$(DeployServer) -enableRule:DoNotDeleteRule"
ContinueOnError="false" />
</Target>
Run Code Online (Sandbox Code Playgroud) 我在web.config中有以下配置:
<resizer>
<sizelimits imageWidth="0" />
<plugins>
<add name="MvcRoutingShim" />
<!--<add name="AzureReader" connectionString="DataConnectionString" /> -->
<add name="DiskCache" />
<add name="PrettyGifs" />
<add name="AnimatedGifs" />
</plugins>
</resizer>
Run Code Online (Sandbox Code Playgroud)
在web.config.Release中,如何将AzureReader元素添加为plugins元素的子元素(有效地取消注释上面的内容)?
我熟悉如何进行基本的转换,但之前从未这样做过.
我正在尝试MVC4 System.Web.Optimization 1.0 ScriptBundle功能.
我有以下配置:
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
// shared scripts
Bundle canvasScripts =
new ScriptBundle(BundlePaths.CanvasScripts)
.Include("~/Scripts/modernizr-*")
.Include("~/Scripts/json2.js")
.Include("~/Scripts/columnizer.js")
.Include("~/Scripts/jquery.ui.message.min.js")
.Include("~/Scripts/Shared/achievements.js")
.Include("~/Scripts/Shared/canvas.js");
bundles.Add(canvasScripts);
}
}
Run Code Online (Sandbox Code Playgroud)
以及以下观点:
<script type="text/javascript" src="@Scripts.Url(BundlePaths.CanvasScripts)"></script>
Run Code Online (Sandbox Code Playgroud)
哪里BundlePaths.CanvasScripts
是"~/bundles/scripts/canvas"
.它呈现:
<script type="text/javascript" src="/bundles/scripts/canvas?v=UTH3XqH0UXWjJzi-gtX03eU183BJNpFNg8anioG14_41"></script>
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好,除了~/Scripts/Shared/achievements.js
是捆绑源中的第一个脚本.这取决于它之前包含的每个脚本ScriptBundle
.我如何确保它遵守我向包中添加include语句的顺序?
更新
这是一个相对较新的ASP.NET MVC 4应用程序,但它引用了优化框架预发布包.我删除了它并从http://nuget.org/packages/Microsoft.AspNet.Web.Optimization添加了RTM包.使用web.config中带有debug = true的RTM版本,@Scripts.Render("~/bundles/scripts/canvas")
以正确的顺序呈现各个脚本标记.
在web.config中使用debug = false,组合脚本首先使用achievement.js脚本,但由于它是稍后调用的函数定义(对象构造函数),因此它运行时没有错误.也许minifier足够聪明,可以找出依赖关系?
我还尝试了IBundleOrderer
Darin Dimitrov在RTM中使用两种调试选项建议的实现,并且它的行为相同.
所以缩小版本不是我期望的顺序,但它的工作原理.
我无法解决这个问题
我建议我必须更改c:\Windows\System32\drivers\etc\hosts
文件并添加
# localhost name resolution is handled within DNS itself.
Run Code Online (Sandbox Code Playgroud)
下一行:
127.0.0.1 mysite.dev
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.有什么建议?
当我尝试在Microsoft Visual Studio 2012中打开网站项目时出现错误.
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
应该使用什么类型的声明?
这是主要问题,这里还有其他问题.
它与http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
索赔有什么不同?
对于特定用户而言,与名称声明相反,它是永久性的吗
它是全局范围的还是IdP范围的?
我正在编写一个使用表单身份验证的Asp.net MVC 2应用程序,目前我的iPhone应用程序在通过Web进行身份验证/登录时遇到问题.我们开发了一个使用UIWebView控件的简单iPhone应用程序.在这个阶段,所有应用程序都会导航到我们的Asp.Net网站.简单吧?问题是,用户无法通过登录页面.重复步骤是:
但是用户然后被重定向到BACK登录屏幕!
我已经对此进行了一些广泛的调试,我所知道的是:
cookie被发送到客户端,客户端正在存储cookie.在iPhone调试器中验证了这一点,并使用Javsascript在页面上显示cookie数据.cookie正被发送回服务器.在Visual Studio调试器中验证了这一点.它是正确的cookie(它与设置的相同).User.Identity.IsAuthenticated属性由于某种原因返回false,即使auth cookie包含在Request对象中.我已经确认iPhone应用程序已设置为接受cookie,并且它们在客户端上.
这是有趣的事情:如果您在iPhone上打开Safari浏览器并直接访问我们的网站,它可以正常工作.
它在iPad上也具有相同的行为,因为它没有通过登录屏幕.这种模拟器和设备上的重复.
这个网站已经通过IE 7-8,Safari(适用于Windows),Blackberry,IEMobile 6.5,Phone 7进行了测试,可以找到它.唯一不适用的情况是iPhone应用程序中的UIWebView.
我们有一个Web应用程序,它使用Jquery blockUI来打开弹出窗口并执行一些操作.所有这一切在Safari上运行良好,IE 8问题在于Ipad.弹出窗口中的所有操作都没有响应.它只停留在那个页面上.即便关闭也行不通.我们需要添加其他东西吗?这是打开页面并单击事件以进行关闭的代码.
<script>
$(document).ready(function() {
$.ajaxSetup( {
cache:false
});
$("#sendInviteDiv").load("invite.htm?action=view&pid="+pid);
$.blockUI({ message: $('#sendInviteDiv'),
centerY: 0,
css: {
top: ($(window).height() - 550) /2 + 'px',
left: ($(window).width() - 870) /2 + 'px',
width: '870px'
}
});
//var ua = navigator.userAgent;
//var event = (ua.match(/iPad/i)) ? "touchstart" : "click";
//alert(ua);
$('#closeInvite').click($.unblockUI);
$('#inviteBtn').click(function() {
//script to load
//setPositionDetails('${formName}','inviteBtn');
});
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
感谢指针.
启用了javascript,并在Ipad Safari设置中允许弹出窗口.
在我的本地笔记本电脑上发生了一些奇怪的事情:我在本地工作了很长时间的网站没有启动......
尝试本地化问题我创建了一个只有'index.html'文件的简单网站.它在ASP.NET 2.0下工作正常,但当我将App Pool切换为使用4.0时 - 它停止工作.
当我在浏览器中打开网站时,它显示以下错误:
暂停服务
http错误503服务不可用.
并导致App池停止工作...在系统事件登录"应用程序"部分我有:
工作进程无法正确初始化,因此无法启动.数据是错误的.
请指教.在Google中找不到任何相关内容...... :(
PS我有VS2010,Windows Vista x64,安装了最后更新,还安装了VS SP1 ...
我有一个带有表单身份验证的ASP.NET MVC 3应用程序.由于某些我无法看到的原因,登录重定向网址/Account/Login?ReturnUrl=%2fSecure%2fAction
代替/Account/LogOn?ReturnUrl=%2fSecure%2fAction
.区别很小,它使用/ Account/Login而不是/ Account/LogOn.
我的web.config表单部分是正确的.否则可能会影响登录网址?
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="720" />
</authentication>
Run Code Online (Sandbox Code Playgroud) 在MVC4中,如果我为解决方案中的所有项目创建新的构建配置,那么在构建Web .csproj时我会得到以下内容:
msbuild Company.Directory.Web.csproj /p:Configuration=Dev
Run Code Online (Sandbox Code Playgroud)
[错误] C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9):没有为项目'Company.Directory.Web.csproj'设置OutputPath属性.请检查以确保您为此项目指定了Configuration和Platform的有效组合.Configuration ='Dev'Platform ='AnyCPU'.您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且已指定了此项目不存在的非默认配置或平台.
但是,OutputPath
财产设置!
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Dev|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
<DeployIisAppPath>Port 80/directory/dev</DeployIisAppPath>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{285FBF79-7933-4AF9-AAAF-25EE7734AAAA}</ProjectGuid>
<ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Company.Directory.Web</RootNamespace>
<AssemblyName>Company.Directory.Web</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<MvcBuildViews>false</MvcBuildViews>
<UseIISExpress>true</UseIISExpress>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)
这是一个错误吗?我该如何解决?
asp.net ×4
asp.net-mvc ×4
msbuild ×2
adfs2.0 ×1
asp.net-4.0 ×1
bundle ×1
cookies ×1
iis-express ×1
ipad ×1
jquery ×1
msdeploy ×1
safari ×1
teamcity ×1
uiwebview ×1
web-config ×1