我有一个使用Web Deploy 3.5配置的IIS 7.5,以便右侧操作窗格中的"导入/导出应用程序"功能显示并正常运行.不幸的是,我不得不删除并重新安装IIS,现在导入/导出功能未显示在"操作"窗格中,就像未安装Web部署一样.
我尝试使用http://www.iis.net/downloads/microsoft/web-deploy上的自动安装程序重新安装,但是当我运行它时,安装程序似乎认为Web Deploy已经安装并且不提供给我重新安装/卸载选项.
如何强制重新安装WebDeploy或强制IIS识别仍然安装了Web Deploy?
在我的一个项目中,我有两个"数据传输对象"RecordType1和RecordType2,它们继承自RecordType的抽象类.
我希望两个RecordType对象在"process"方法中由同一个RecordProcessor类处理.我的第一个想法是创建一个通用的流程方法,该方法委托给两个特定的流程方法,如下所示:
public RecordType process(RecordType record){
if (record instanceof RecordType1)
return process((RecordType1) record);
else if (record instanceof RecordType2)
return process((RecordType2) record);
throw new IllegalArgumentException(record);
}
public RecordType1 process(RecordType1 record){
// Specific processing for Record Type 1
}
public RecordType2 process(RecordType2 record){
// Specific processing for Record Type 2
}
Run Code Online (Sandbox Code Playgroud)
我读过Scott Meyers在Effective C++中写了以下内容:
"任何时候你发现你自己编写的形式的代码'如果对象是T1类型,那么做一些事情,但如果它是T2类型,那么做一些其他的事情,'打自己."
如果他是对的,显然我应该打自己.我真的没有看到这是多么糟糕的设计(除非当然有人将RecordType子类化并添加到RecordType3而不向处理它的通用"Process"方法添加另一行,从而创建一个NPE),以及我能想到的替代方案涉及将特定处理逻辑首当其冲地放在RecordType类本身中,这对我来说真的没有多大意义,因为理论上我可以对这些记录执行许多不同类型的处理.
有人可以解释为什么这可能被视为糟糕的设计并提供某种替代方案,仍然负责将这些记录处理到"处理"类?
更新:
return null
以throw new IllegalArgumentException(record);
我正在将我的应用程序从App Engine数据存储区移植到MongoDB后端,并对"文档更新"的一致性提出疑问.我知道一个文档的更新都是原子的和隔离的,但有没有办法保证它们在不同的副本集中"一致"?
在我们的应用程序中,许多用户可以(并且将会)在一次更新期间通过向其中插入一些嵌入文档(对象)来同时尝试更新一个文档.我们必须确保这些更新发生在所有副本逻辑一致的方式,即当一个用户"把"几嵌入文档到主文件,其他用户可以把自己嵌入文档的父文档中,直到我们确保他们已经阅读并收到第一个用户的更新.
所以我的意思是一致的是,我们需要一种方法来确保如果两个用户试图在一个文档进行更新恰好在同一时间,MongoDB中只允许这些更新要经过的一个,并丢弃另一个(或至少可以防止两者发生.我们不能在这里使用标准的"分片"解决方案,因为单个更新不仅仅包含增量或减量.
保证一个特定文档一致性的最佳方法是什么?
当我在OSX Mavericks上运行'gem install cocoapods'时出现错误.
$ gem install cocoapods
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - bad response backend read error 503 (https://rubygems.global.ssl.fastly.net/quick/Marshal.4.8/cocoapods-0.27.1.gemspec.rz)
ERROR: Possible alternatives: cocoapods
Run Code Online (Sandbox Code Playgroud)
请注意,我可以直接下载cocoapods-0.27.1.gemspec.rz.我正在运行最新版本的XCode(5.0.1)和最新版本的CLI工具.RVM还配置为运行最新的Ruby版本(2.0.0p247)
我正在通过WkWebView导航到的本地HTML页面上有一个远程Javscript资产标签,它永远不会完成下载(在iOS设备未连接到互联网或设备的互联网速度太慢的情况下).
不幸的是,WKWebView永远不会中止尝试下载这个资产,也不会转移到我的WKNavigationDelegate(即既-webView:didFailNavigation:withError:
不会也不会-webView:didFinishNavigation: neither
被调用),因此用户会遇到一个空白的HTML页面,该页面永远无法完全解析并且永远不会出错.
值得庆幸的是,在某些情况下,我通过Safari远程iOS Javascript调试器进行了调试,我注意到我们将错误Failed to load resource: The Internet connection appears to be offline
记录到控制台,但在其他情况下(如飞机模式中的某些设备),WKWebView似乎永远不会因此错误或放弃,所以没有WKNavigationDelegate回调被解雇.
您可以通过将iOS 8.2模拟器与任何WKWebView iOS应用程序一起使用来重现此场景,导航到任何本地提供的HTML文件,然后使用任何远程URL添加脚本标记,然后使用任何远程URL将您的Internet连接限制为"100%丢失" Apple的网络链接调节器.
什么是强制WkWebView通过错误或成功回调到其WKNavigationDelegate超时/返回的最佳方法?
似乎使GAE Channel API具有财务可行性的唯一方法是实现某种池化机制(其中一位高级应用程序引擎产品经理甚至告诉我这一点,当我通过电子邮件向他们发送关于价格过高的价格时)来重用尚未使用的渠道过期.
我一直在集思广益,以实现渠道池,但我认为每种方法都有一些非常严重的缺点.
Servlet的静态内存 - 很好,但是当新VM实例打开和/或客户端从一个VM传递到另一个VM时,会丢弃相当多的开放通道.
Memcache - 至少可以从所有VM全局访问内存,但现在由于不活动和内存压力,可能会丢弃一个非常可行的通道.
后端实例 - 可能性是可靠性方面的最佳选择,但现在运行后端的费用将耗尽首先实现池的所有节省!
是否有更好的地方/方式在虚拟机上实现我缺少的通道池,或者我是否不必要地在这里选择我的选项的缺点?我真的希望有,或者看起来我的应用程序将不得不恢复到轮询(在我的初步指标中看起来略微便宜).
如果给定的Web服务器只能从其自己的域中设置的cookie中读取cookie,那么Internet广告商如何跟踪来自其网络外部网站的用户的Web流量?
是否有某种" supercookie "全球广告系统允许广告商检索上层域名cookie,然后查询一些服务器(来自联盟会员),其中包含该用户所在位置的信息?
更新:
为了澄清我的问题,如果广告客户从未在"example1.com"的网页上投放广告,那么在"example2.com"上发布广告的广告客户是否有可能确定我访问过特定网站"example1.com"?
随着Google App Engine新定价模式的发布,我意识到由于Google Datastore交互的极高价格,我的应用程序无法维持自身.因为它是依赖于一致且快速的用户输入的社交游戏,所以此应用程序仅需要在每个用户的基础上进行太多的数据存储交互才能生效(即使使用memcache调解常见查询和操作).
从我所做的研究来看,似乎最好的解决方案是让我的团队迁移到基于Cassandra的数据库解决方案.我已经看过各种流行的API,比如Hector和Pelops,但是从我最初的检查来看,它们似乎对我正在寻找的东西来说太低了.是否有Java中的Cassandra客户端API模拟App Engine的低级Datstore API并使用相同的"实体组"/属性模型?至少我希望API具有相同的"Ancestor"实体概念,并以相同的方式维护跨组事务.
编辑:澄清一下,我真正想要的是一个支持交易的Cassandra API.据我所知,NoSQL环境中的事务很难实现,如果不是不可能实现没有"对象"的一些分层分组(称之为你想要的,实体,表等).这似乎是赫克托尔没有实现它们的原因.
所以,我的问题是,实现某种形式的事务系统的最流行的Cassandra API是什么,最好是使用类似GAE的实体结构?
java google-app-engine cassandra nosql google-cloud-datastore
是否存在WKWebView的Objective C接口/编程API,允许增加域的localStorage的大小限制?当我使用下面的脚本调试iOS Framework创建的嵌入式浏览器时,我得到DOMException
的消息QuotaExceededError: DOM Exception 22
大约是2750KB的存储空间.
function gen(n) {
return new Array((n * 1024) + 1).join('a')
}
// Determine size of localStorage if it's not set
var i = 0;
try {
// Test up to 10 MB
for (i = 0; i <= 10000; i += 250) {
localStorage.setItem('test', gen(i));
}
} catch (e) {
console.log(e.message + ' : ' + i + 'KB size limit');
}
Run Code Online (Sandbox Code Playgroud)
可以通过在Safari中运行脚本来重新创建相同的错误.虽然我可以理解为什么不允许在浏览器中运行的脚本通过JavaScript设置大小,但WebKit中必须有一个编程API来修改它.
javascript objective-c local-storage mobile-webkit wkwebview
从阅读CSP标准规范和示例看来,它似乎不支持给定URL的路径部分中的通配符.这似乎是一种疏忽,因为许多CDN和静态文件托管提供商在其用户之间共享根域名,并且仅区分对URL路径而非整个域的访问.
例如,当使用S3或Google云端存储作为CDN时,您可能希望CSP允许使用通配符URL(例如" https://storage.googleapis.com/my-apps)从您的存储桶加载脚本/资产-bucket /*"但是对于https://storage.googleapis.com的其余部分禁止使用它们,因为对于恶意行为者来说创建自己的帐户并从该根域提供内容会相当微不足道.
这似乎是一个非常常见的用例,我误解了规范吗?如果没有,使用通配符路径的语法是什么,因为使用标题Content-Security-Policy: script-src 'self' https://example.com/*
似乎不起作用.
java ×2
javascript ×2
wkwebview ×2
ads ×1
amazon-s3 ×1
cassandra ×1
cdn ×1
channel ×1
channel-api ×1
cocoapods ×1
concurrency ×1
consistency ×1
cookies ×1
gem ×1
iis ×1
instanceof ×1
ios ×1
mongodb ×1
nosql ×1
objective-c ×1
pooling ×1
ruby ×1
timeout ×1
tracking ×1
webdeploy ×1
xcode ×1