如果控制器操作在操作上指定了OutputCache属性,是否有任何方法可以清除输出缓存而无需重新启动IIS?
[OutputCache (Duration=3600,VaryByParam="param1;param2")]
public string AjaxHtmlOutputMethod(string param1, string param2)
{
var someModel = SomeModel.Find( param1, param2 );
//set up ViewData
...
return RenderToString( "ViewName", someModel );
}
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用HttpResponse.RemoveOutputCacheItem(string path)它来清除它,但是我很难弄清楚应该将它映射到action方法的路径.我将再次尝试使用ViewName呈现的aspx页面.
也许我只是手动插入的输出RenderToString入HttpContext.Cache,而是如果我不明白这一个.
更新
请注意,OutputCache是VaryByParam,测试出硬编码路径"/ controller/action"实际上并没有清除outputcache,所以看起来它必须匹配"/ controller/action/param1/param2".
这意味着我可能不得不恢复到对象级缓存并手动缓存输出RenderToString():(
如果我使用Resharper 8在VS2012中单击CTRL点击方法的名称,我会被重定向到方法的"声明" - 如果我的项目中有很多接口,那就非常不方便了.
如果可以配置resharper直接进入方法的实现(如果有多个 - 显示一个上下文菜单,我需要从中选择所需的方法)?如果我右键单击 - >"转到实现",我可以实现这一点,但我更喜欢在ctrl-click上进行此操作.
我想用不到1毫秒的时间调用线程休眠.我读到没有thread.Sleep也没有Windows-OS支持.
那是什么解决方案?
对于所有想知道我为什么需要这个的人:我正在进行压力测试,并想知道我的模块每秒可以处理多少消息.所以我的代码是:
// Set the relative part of Second hat will be allocated for each message
//For example: 5 messages - every message will get 200 miliseconds
var quantum = 1000 / numOfMessages;
for (var i = 0; i < numOfMessages; i++)
{
_bus.Publish(new MyMessage());
if (rate != 0)
Thread.Sleep(quantum);
}
Run Code Online (Sandbox Code Playgroud)
我很高兴得到你的意见.
我正在开发.Net 4.0 C#Windows Forms应用程序,它在某个预定义的端口上托管WCF服务(比方说12345).我们有另一个iPad应用程序与此WCF服务对话 - 此连接被Windows防火墙阻止.我的用户总是遇到麻烦,因为他们必须记住将此应用程序添加到例外列表等 - 这会导致沮丧.
如何让Windows在我的应用程序的屏幕截图中显示弹出窗口,以使其更加用户友好?
更新 - 我明白我可以以编程方式更新Windows防火墙中的规则.但是,这需要管理员权限,这并不总是可行的.例如,我在将来的某个时候考虑ClickOnce部署 - 不确定它将如何使用它.所以我仍然想知道为了得到那个对话我应该怎么做.
解决方案: 感谢下面的@alexw答案,我能够使用这个简单的代码获得对话框:
IPAddress ipAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 12345);
TcpListener t = new TcpListener(ipLocalEndPoint);
t.Start();
t.Stop();
Run Code Online (Sandbox Code Playgroud)
以及更多 - 不可能将这个弹出窗口作为文档状态获得WCF服务(参见底部):
WCF的自托管HTTP寻址未集成到Windows防火墙中.必须在防火墙配置中添加例外,以允许使用特定URL的入站连接.

我在App Store有应用程序.一位客户向我询问是否可以获得相同的应用程序,但他的iPad上安装了不同的名称,不同的图形和其他一些更改 - 其中150个.如果那将是10个iPad - 我会进行自定义构建,将所有iPad添加到配置证书中,就可以了.但这不适用于150台iPad.那么我的选择是什么?到目前为止,我可以考虑以下几点:
到目前为止,选项#2看起来对我来说是最有希望的 - 作为一个不同的应用程序提交到App Store.但我担心Apple不会让几乎相同的应用程序进入App Store.特别是如果我从与主应用程序相同的帐户提交它.Apple可以阻止我吗?还有其他想法吗?
谢谢.
更新和解决方案
我将在这里结合@ vikingosegundo的答案.
更新至选项2 - 使用其他名称提交至应用商店:
一些链接说它是可能的:http://developer.appcelerator.com/question/123906/white-label-apps---is-approval-possible-apple- - 并且可以这样做.我没有在应用商店评论指南中找到明确的限制 :
2.20将从iOS开发者计划中删除开发人员"发送垃圾邮件"App Store与许多版本的类似应用程序
我不相信两三个人会算得多,如果你明确重塑它就会算作垃圾邮件.但当然这取决于Apple.
更新选项#3 - 使用企业分发:
这就是我最后决定做的事情.我打电话给苹果支持@ 1-800-633-2152 - 真人回答:)我最担心的是,我想分发应用程序的iPad不属于我客户的业务 - 所以从技术上讲,它不是"内部发行" .然而他们说
企业是可以的,因为该应用程序将由企业持有者(我的客户)使用,谁拥有iPad并不重要
新选项#4 - 批量购买计划
Apple的批量购买计划看起来正是我们实际需要的:
批量购买计划还提供了一种获取由第三方开发人员构建的自定义B2B应用程序的方法,以满足您业务的独特需求.
在这个时刻,你必须成为美国企业才能加入这个项目 - 但他们希望尽快将其扩展到更多国家.
我无法通过YouTube Player API的getDuration()方法获取加载/提示视频的正确视频持续时间/长度(以秒为单位); 但是,相同的方法会在视频开始播放后返回有效值!想知道YouTube如何能够显示加载/提示视频的有效持续时间.
当我用15秒的视频剪辑加载这个HTML页面时,我得到以下调试输出:
state = 5 duration = -0.000025
当我点击播放按钮时,我得到以下调试输出:
state = 3 duration = 15,
非常感谢解决方案或解决方法.加载,立即播放和暂停播放器将不是我最喜欢的方法.
<html>
<head>
<script type="text/javascript">
var videoId;
videoId = 'http://www.youtube.com/v/4TSJhIZmL0A'; // bbc
// videoId = 'http://www.youtube.com/v/ezwyHNs_W_A'; // physics
function $(id) {
return document.getElementById(id);
}
</script>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("swfobject", "2.1");
</script>
</head>
<body>
<table>
<tr><td>
<div id="player">
You need Flash player 8+ and JavaScript enabled to view this video.
</div>
<script>
var ytplayer;
function myOnPlayerStateChange(state) {
switch(state) {
case 1: // playing …Run Code Online (Sandbox Code Playgroud) javascript youtube duration youtube-api youtube-javascript-api
PayPal预批准API操作是否有任何工作示例.我经历了一些教程.但他们正在为交易指定一些预先批准的密钥.我们如何获得这个钥匙?
我想知道是否有一种方法可以获得此代码的编译错误:
var customer = new SomeCustomerClass();
Console.WriteLine("Customer address:" + customer);
Run Code Online (Sandbox Code Playgroud)
所以我将被迫写下这样的东西:
var customer = new SomeCustomerClass();
Console.WriteLine("Customer address:" + customer.FormatAddress());
Console.WriteLine("Customer accounts:" + customer.FormatAccounts());
Run Code Online (Sandbox Code Playgroud)
如果"ToString"是一个接口,我可以在我的类中使用显式接口实现.
谢谢.
来自@ avs099的编辑:我正在这篇文章上开始赏金,因为我有完全相同的问题.我在这里总结了这个问题,并留下了帖子本身,底部没有任何变化供参考.
我们拥有的: Facebook页面访问令牌,如此处所述获得:使用新的fb_exchange_token请求进行身份验证,以及将其延长至60天.
有什么问题:这个令牌可以工作一段时间 - 有时候我可以在几天内将数百张照片发布到我的粉丝页面; 有时它几乎没有照片 - 然后我开始得到
(OAuthException)使访问令牌无效时出错:会话已失效,因为用户已更改密码.
要么
(OAuthException)使访问令牌无效时出错:会话与当前存储的会话不匹配.这可能是因为用户在创建会话之后更改了密码,或者Facebook出于安全原因更改了会话.
来自Facebook的例外 - 当然我没有更改密码或取消授权应用程序.
附加信息:不确定是否重要但是:
任何人都知道发生了什么以及如何解决这个问题?
谢谢.
我有一个Facebook应用程序,有两个目的:
1)允许用户facebook连接我的网站2)允许我的网站发布到我的网站Facebook粉丝页面墙
我关心的是第二次使用.我曾经能够在粉丝页面上设置应用程序的权限,只允许发布(通过php sdk)而不用担心访问令牌.现在我已经创建了一些新的粉丝页面,并且该功能似乎已被删除.好吧,所以我经历了为用户(总是我或我的Facebook粉丝页面的另一个管理员)获取访问令牌(成功)的整个过程,并使用该令牌获取我管理的粉丝页面的访问令牌(我有manage_pages权限以及我要发布到的页面的其他管理员也是如此.但是,当引擎转到将内容发布到我的粉丝页面时,令牌已过期,并出现以下两条错误消息之一:
使访问令牌无效时出错:会话与当前存储的会话不匹配.这可能是因为用户在创建会话之后更改了密码,或者Facebook出于安全原因更改了会话.
要么
OAuthException:使访问令牌无效时出错:会话已失效,因为用户已更改密码.
但这不是依赖于外部用户的访问令牌,只有内部人员(我和其他一个人现在).我们不会更改密码或做任何事情.我甚至在获得令牌后退出Facebook测试它,它工作正常.只是过了一会儿,他们无缘无故地过期了.当我拿到令牌时,我可以在调试工具上检查它们,它们应该持续60天(根据文档),尽管该工具说它们永不过期.
我已经设置了系统,所以当它无法发布到页面时,我会收到一封电子邮件,其中包含指向我网站的链接以更新令牌.
有人知道发生了什么事吗?
我有一个JPG图像与城市的360度视图(9000像素×1000像素).我需要创建一个具有无限旋转背景的页面- 例如,给用户留下旋转的webcamera的印象.
第一部分 - 从图像的左侧滚动到右侧非常简单 - 只需使用jQuery.animate(...).但是我怎样才能无缝地返回到图像的开头(在它完成359度转弯之后),所以用户不会注意到"跳跃"或类似的东西?
网上有什么例子吗?
我只针对HTML5/CSS3(webkit)浏览器,我可以使用最新的jQuery.
谢谢.