我刚读了一篇有趣的文章.基本上它说,你应该通过两种方式为每个应用程序微调IIS设置:
好吧,我现在开发ASP.NET已经有一段时间了,即使是在工作中,我们也从来没有在生产环境中做过这件事.我理解所提出的理论优势 - 最小化应用程序(安全性)的"表面",并提高性能.但我真的很好奇,如果你在现实生活中这样做(为你的客户提供真正的项目,而不是概念验证项目).这有什么缺点(可能性?).最重要的问题 - 值得吗?例如,性能增益是否可见?
另外,如果你认为这是一个很好的做法,请提出一些好的和一致的方法(或指向我的教程),你是如何做到这一过程的 - 你如何决定留下什么以及要删除什么.
例如,什么是ASP.NET MVC 3应用程序的最小但工作集,它使用自定义身份验证(基于会话,不依赖于Forms身份验证,Windows身份验证等),没有Web服务和类似功能?
编辑
我找到了这篇文章:http://madskristensen.net/post/Remove-default-HTTP-modules-in-ASPNET.aspx
在其中,Scott Guthrie说:
一般来说,使用这种方法可以获得一些非常小的性能胜利 - 尽管我可能建议不要这样做.原因是ASP.NET的某些功能(表单身份验证,角色,缓存等)当然会在您删除它们所依赖的模块后停止工作.试图找出发生这种情况的原因往往令人困惑.
但仍然没有测量,实践(我不相信"你以后可能会感到惊讶"的论点:)
我刚刚下载了C#SDK和ASP.NET MVC示例,将其修改为与4.2.1一起使用.(web config facebookSettings参数等),创建了我的Facebook应用程序并尝试运行它.点击Facebook登录按钮 - 确定,在facebook弹出窗口中输入凭据 - 确定,允许访问我的应用程序 - 好的,然后我收到此错误:
System.Net.Sockets.SocketException:尝试以其访问权限禁止的方式访问套接字66.220.146.47:443
var app = new FacebookApp();
if (app.Session == null)
{
// The user isnt logged in to Facebook
// send them to the home page
return RedirectToAction("Index");
}
// Get the user info from the Graph API
dynamic me = app.Api("/me"); // EXCEPTION THROWN HERE
ViewData["FirstName"] = me.first_name;
ViewData["LastName"] = me.last_name;
Run Code Online (Sandbox Code Playgroud)
该app物体是OK,我认为(含设置参数,可以与访问令牌会话对象和我的Facebook用户ID等)
我正在使用本地开发地址http://myappdev.local(设置为127.0.0.1hosts文件).我的Facebook应用程序设置中也设置了相同的地址,也是域名myappdev.local- 这可能是问题吗?我localhost:1234在一些教程中看到了一些例子.
包含ANR跟踪文件有很多问题,答案总是"哦,问题在你的主题76,修复你的http调用"或者其他东西:)但我找不到任何关于如何阅读这些跟踪的一般指南或教程,任何ANR的一步一步.有没有?我特别提出几个问题:
是否总能看到我在谷歌控制台中看到的真实ANR的线程痕迹问题?或者是否可能没有相关信息,如果我无法在本地重现ANR,我运气不好?
这些信息中包含哪些主题?我想应用程序进程中有所有线程,但其余的呢?它们在某种程度上与我相关吗?(例如我的一些线程正在等待的线程等)或者还有完全不相关的进程?
谷歌游戏控制台如何确定ANR发生的"地点" - 然后显示在ANR列表中,例如:
ANR keyDispatchingTimedOut
miesto:com.sample.myapp/myapp.activities.SplashActivity
因为SplashActivity在线程跟踪的提供文本中无处可见.
"AsyncTask#1"prio = 5 tid = 15 WAIT | group ="main"sCount = 1 dsCount = 0 obj = 0x41bb50c0 self = 0x5529a868 | sysTid = 2448 nice = 0 sched = 0/0 cgrp = apps handle = 1429609576 | state = S schedstat =(18097077 39273309 41)utm = 1 stm = 0 core = 1 at java.lang.Object.wait(Native Method) - 等待tid = 15持有的<0x41bb5258>(java.lang.VMThread) (AsyncTask#1)
这总是好的,我可以假设这不是原因吗?那个情况怎么样,我在NATIVE中只有一堆线程(包括主线程)和WAIT中的一堆线程在这样等待自己?这怎么可能是ANR?
我正在使用Xamarin应用程序实现Google Play应用内结算,因此我查看了android和xamarin文档.他们都建议使用模糊的方法来混淆应用程序中的公钥:
http://developer.android.com/training/in-app-billing/preparing-iab-app.html
安全建议:强烈建议您不要对Google Play提供的确切公共许可证密钥字符串值进行硬编码.相反,您可以在运行时从子字符串构造整个公共许可证密钥字符串,或者在将其传递给构造函数之前从加密存储中检索它.这种方法使恶意第三方更难以修改APK文件中的公共许可证密钥字符串.
http://components.xamarin.com/gettingstarted/xamarin.inappbilling/true
虽然最佳做法是在远程服务器上而不是在设备上执行签名验证,但这可能并非总是可行.另一种技术是混淆您的Google Play公钥,并且永远不会将已组装的密钥存储在内存中.Xamarin.InAppBilling提供了Unify例程,可用于将您的Google Play公钥分成两个或多个部分,并使用一个或多个键/值对对这些部分进行模糊处理.此外,Xamarin.InAppBilling始终在内存中加密您的私钥.以下是使用Unify对私钥进行模糊处理的示例:
string value = Security.Unify (
new string[] { "X0X0-1c...", "+123+Jq...", "//w/2jANB...", "...Kl+/ID43" },
new int[] { 2, 3, 1, 0 },
new string[] { "X0X0-1", "9V4XD", "+123+", "R9eGv", "//w/2", "MIIBI", "+/ID43", "9alu4" })
Run Code Online (Sandbox Code Playgroud)
但无处解释,这里的交易是什么.为什么有人想看到这把钥匙?如何看到/替换我的APK中的密钥会有什么好处?这里有什么可能的"攻击"?谢谢.
我的Xamarin.Android应用程序使用简单的启动画面技术将主题应用于Splash活动:
<resources>
<style name="SplashTheme" parent="@android:style/Theme.NoTitleBar">
<item name="android:background">@drawable/bluebg</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
和
[Activity(Label = "Splushy Splushy", MainLauncher = true, Theme = "@style/SplashTheme")]
public class SplashActivity : Activity
{ ... }
Run Code Online (Sandbox Code Playgroud)
但似乎在启动画面上使用的图像(PNG,80 KB)在我的应用程序运行的整个过程中,内存中的内存大小为12 MB(有和没有启动的内存使用之间的差异)(另一项活动,永远不会回头)自然地飞溅屏幕).
有没有办法摆脱活动主题使用的资源,所以我的内存占用不会变得不必要的大?谢谢.
我有azure云服务 - 2个Web实例,每天服务大约500,000个请求.使用Azure业务数据库.有一个问题 - 有时(平均每天一次,但不是在同一时间)有2-3分钟的间隔,而我无法查询数据库,错误信息是这样的:
System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.Data.SqlClient.SqlException: Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=1; handshake=12; [Login] initialization=0; authentication=0; [Post-Login] complete=14004; ---> System.ComponentModel.Win32Exception: The wait operation …Run Code Online (Sandbox Code Playgroud) 将我的云项目升级到Azure SDK 2.6之后.(通过项目属性窗口中的按钮),一切正常,但我得到了*.cscfg文件的数百个这样的警告:
The complexType 'http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration:AccessControlElement' has already been declared.
The complexType 'http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration:AddressAssignmentsElement' has already been declared.
The complexType 'http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration:Certificate' has already been declared.
Run Code Online (Sandbox Code Playgroud)
等等更多元素.
已经尝试过Clean,Rebuild,close-open VS ......但没有成功.它不会影响项目的功能,但让错误列表充满这些东西真的很烦人.
知道什么是错的,怎么解决?
我正在开发一个我正在使用CKEditor的应用程序.我提供了一个名为clear的按钮.每当用户选择文本的某些部分并单击清除按钮时,只会删除所选文本.
我在我的应用程序中使用了以下代码,但每当用户单击清除按钮时,不仅选择了文本,而且整个内容都被删除.
function clear_onclick() {
CKEDITOR.instances.message.setData('');
}
Run Code Online (Sandbox Code Playgroud)
如何在单击ASP.Net MVC2中的清除按钮时从CKEditor中清除所选文本?
android ×3
azure ×2
asp.net ×1
asp.net-mvc ×1
c# ×1
ckeditor ×1
iis-7.5 ×1
javascript ×1
sql-server ×1
web-config ×1
xamarin ×1