小编Nie*_*sma的帖子

使用Session来存储身份验证?

我在FormsAuthentication方面遇到了很多问题, 而且我正在考虑将其存储loginSession

Login:
Session["Auth.ClientId"] = clientId;

IsAuthenticated:
Session["Auth.ClientId"] != null;

Logout;
Session["Auth.ClientId"] == null;
Run Code Online (Sandbox Code Playgroud)

FormsAuthentication无论如何,我并没有真正使用大部分的花里胡哨.这是一个坏主意吗?

asp.net forms-authentication

5
推荐指数
1
解决办法
1278
查看次数

ASP.NET缓存策略

我正在为常用的数据库对象实现数据缓存,我在确定缓存以下场景的最佳策略时遇到了一些困难:

我有一张名为Campaigns的表,有1423条记录.广告系列包含描述目标网页的所有文本和设置.生成登录页面时,将从数据库中提取相应的Campaign.有些登陆页面比其他登陆页面更受欢迎.

(输出缓存是我的下一步,因此无需对此进行评论.)

我正在大声思考:

A)在服务器启动时将所有活动预先加载到Dictionary中并将其放入缓存中.

我已经计算出这将花费大约3.8 MB的服务器内存(OK),并且在首页视图上花费大约8秒钟(OK),并且当前的广告系列数量.唯一的问题是这不能很好地扩展.明天我可能会有10倍的广告系列.此外,我们还需要每天更新和添加新广告系列,并且每次都删除整个广告系列缓存似乎有点矫枉过正.

其中很好的部分是所有广告系列都是缓存的,因此在访问未访问的目标网页时(例如搜索引擎)没有启动时间.

B)延迟加载:使用"广告系列.[id]"等密钥单独缓存每个广告系列.

这样可以很容易地杀死或添加各种活动,并且我可以使用Sliding功能(如SlidingExpiration)来减少使用较少的广告系列.唯一的问题是,当搜索引擎访问一个很少访问的页面时,就是加载广告系列的时候.另一个问题是Cache充满了大量的密钥.

C)懒惰加载到字典中与B)相同的bennefins并且缓存不会被大量的键混乱,但不能使用缓存功能,如果内存紧张,整个字典将被转储.

你怎么看?我倾向于B).

此外,我还有一个场景,我需要通过id或代码(字符串)获取Campaigns.

在下面的:

Campaigns campaign = //Get campaign from database:
Cache["Campaigns.Id."+campaign.Id.ToString()] = campaign; //Id is Guid
Cache["Campaigns.Code."+campaigns.Code] = campaign;
Run Code Online (Sandbox Code Playgroud)

这会花费我两倍的内存或仅用于另一个索引参考吗?

c# asp.net caching

5
推荐指数
1
解决办法
1682
查看次数

清除部分输出缓存

我有一个页面,其控件是输出缓存(部分输出缓存).这些设置如下:

[PartialCaching(86400, null, null, "campaign.whatwhere", true)]
public partial class controls_LatestEnquiriesListCached : System.Web.UI.UserControl
{

...
Run Code Online (Sandbox Code Playgroud)

public override string GetVaryByCustomString(HttpContext context, string custom)
{
    if (custom == "campaign.whatwhere")
    {
        return (CampaignManager.CurrentCampaign.DefaultWorkTypeId ?? 0).ToString() + (CampaignManager.CurrentCampaign.DefaultEnquiryAreaId ?? 0).ToString();
    }
    return base.GetVaryByCustomString(context, custom);
}
Run Code Online (Sandbox Code Playgroud)

Global.asax

如何设置以便我可以在特定页面上清除此输出缓存?

有可能设置像MyPageWithCachedControl.aspx?ClearCache=true???

c# asp.net fragment-caching global-asax

5
推荐指数
1
解决办法
1262
查看次数

SQL Server 2008的sp_generate_inserts

我一直在SQL Server 2005数据库中使用Narayana Vyas Kondreddi的优秀存储过程sp_generate_inserts http://vyaskn.tripod.com/code/generate_inserts.txt.

但是在转移到SQL Server 2008后,我得到了奇怪的结果,其中在UNIQUEIDENTIFIER值之后插入了一个长空格:

INSERT INTO [BannerGroups]([Id], [DescriptionText], [Width], [Height]) 
VALUES('BFCD0173-9432-47D1-84DF-8AB3FB40BF76                                                                                                                                                                                                                           ', 'Example', 145, NULL)
Run Code Online (Sandbox Code Playgroud)

有人知道怎么修这个东西吗?

sql-server stored-procedures sql-server-2005 sql-server-2008

5
推荐指数
1
解决办法
1万
查看次数

检查是否安装了完整版的.net?

我正在构建一个ExcelDNA插件,需要完整版的.Net(4.0或3.5)(我正在使用System.Web的某些部分).因此,仅具有客户端版本的用户会收到错误.

如果只安装了客户端版本,我想在启动时提示用户"获取最新版本"弹出窗口.

是否有任何万无一失的方法来检查是否安装了完整版本?通过谷歌搜索似乎很多建议检查注册表,这似乎容易出错,因为有许多.Net版本.在这种情况下,我需要检查哪些路径来构建:

bool IsFullDotNetVersion()
{

}
Run Code Online (Sandbox Code Playgroud)

是否有可能/好主意检查是否存在仅在完整版中可用的功能?即是否可以检查System.Web是否存在于环境中?(不包括在.Net的客户端版本中吗?)

作为一个附带问题:如何使用我系统上安装的不同.net版本轻松测试我的应用程序.有没有.Net切换器?

.net c#

5
推荐指数
1
解决办法
1578
查看次数

Flourinefx:无法找到合适的名称方法

重新安装计算机后,我在使用旧的完美工作的flourinefx应用程序时出现问题.

对于某些函数调用(我认为那些包含自定义对象),我得到:

2013-01-15 19:03:53,616 [27] ERROR FluorineFx.MethodHandler - Could not find a suitable method with name GetTodayView
2013-01-15 19:03:53,616 [27] ERROR FluorineFx.MethodHandler - Displaying verbose logging information
2013-01-15 19:03:53,616 [27] ERROR FluorineFx.MethodHandler - Checking GetTodayView(query(Query))
2013-01-15 19:03:53,616 [27] ERROR FluorineFx.MethodHandler - query(Query) did not match value "Offerta.DAL.Queries.Query" (Query)
2013-01-15 19:03:53,633 [27] ERROR FluorineFx.Messaging.Endpoints.Filter.ProcessFilter - Could not find a suitable method with name GetTodayView
FluorineFx.Exceptions.FluorineException: Could not find a suitable method with name GetTodayView
   at FluorineFx.MethodHandler.GetMethod(Type type, String methodName, IList arguments, …
Run Code Online (Sandbox Code Playgroud)

.net apache-flex flourinefx

5
推荐指数
1
解决办法
706
查看次数

在Visual Studio中显示当前的GIT分支?

使用GIT(在TFS中)在错误的分支中工作非常烦人.有没有办法配置Visual Studio以清楚地显示当前活动的分支?就像把它放在标题栏中一样?

如果什么都不存在,也许有可能破解http://erwinmayer.com/labs/visual-studio-2010-extension-rename-visual-studio-window-title/(源代码http://vswindowtitle.codeplex.com /)是否知道获取VS当前项目的当前GIT分支的代码?

git visual-studio-2013

5
推荐指数
3
解决办法
7399
查看次数

Azure webb-app错误?Web.config重复

我在Azure上运行的php应用程序有问题.Web.config不知何故被修改为自己的副本:

这就是我现在发现的方式:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="YOURLS" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/yourls-loader.php" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration><?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="YOURLS" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/yourls-loader.php" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

显然这会导致错误.怎么了?

这是Azure中的错误吗?

iis web-config azure azure-web-sites

5
推荐指数
1
解决办法
112
查看次数

苗条:应用程序/ld+json

使用以下代码:

<svelte:head>
    <script type='application/ld+json'>
    {
    "@context": "https://schema.org",
    "@type": "Organization",
    "url": "https://filestar.com",
    "logo": "https://filestar.com/logo-512.png"
    }
    </script>
</svelte:head>
Run Code Online (Sandbox Code Playgroud)

在获得:

[svelte-preprocess] Error transforming 'ld+json'.

Message:
Cannot find module './transformers/ld+json'

Stack:
Error: Cannot find module './transformers/ld+json'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at Promise.resolve.then (C:\Repos\Filestar-Website\web-vnext\node_modules\svelte-preprocess\dist\utils.js:112:61)
Run Code Online (Sandbox Code Playgroud)

我已经尝试了这个 github 线程中的建议,结果相同:https : //github.com/sveltejs/svelte/issues/2438

svelte sapper svelte-3

5
推荐指数
2
解决办法
691
查看次数

Linq2SQL:总是让.Sum()返回0而不是null

有没有办法(通过扩展机制?)让Sum()函数全部返回0.

我现在的解决方法是写这样的,但我希望有更好的解决方案?

((int?)e.CampaignCodes.Sum(f => f.Enquiries.Count()) ?? 0),
Run Code Online (Sandbox Code Playgroud)

c# null linq-to-sql

4
推荐指数
1
解决办法
1179
查看次数