小编Dai*_*Dai的帖子

CSS - 比页面宽的中心内容

这是一个简单的谜题,今天让我感到沮丧的一段时间:

考虑此页面标记:

<head>
    <style type="text/css">
        #wrapper { overflow: hidden; }
        #content { width: 750px; height: 100px; background: orange; }
    </style>
</head>
<body>
    <div id="wrapper">
        <div id="content">Foo bar</div>
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

无论视口宽度如何,我如何div#content在页面中居中?

我已经尝试了各种技巧(包括text-align: center; display: inline-block;)和绝对定位,但是div#content当浏览器窗口的宽度低于750px时,所有这些技巧都是左对齐的.

我见过一些知名网站过去这么做过.例如,在Apple.com上宣传新的视网膜iPad时:图中的iPad是一个非常宽的图像,延伸到主页面区域(注意它不是<body>元素的CSS背景图像),但它不会导致滚动当浏览器窗口只适合主页面内容时.不幸的是,我似乎无法找到任何现有网站,所以我找不到参考.

谢谢.

css

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

转售Azure网站服务

我正在为利基行业构建SaaS应用程序.应用程序是架构的,以便每个订户获得自己的应用程序实例(例如,允许自定义).这基本上是网站文件(ASP.NET MVC的东西)和SQL数据库的副本.很简单.

我正在考虑转移到Windows Azure - 我的硬件托管成本一直在上升(现在每月大约450GBP,然后是购买新硬件的成本,以及管理所有内容所需的时间).Windows Azure的平台即服务不仅在货币方面节省了相当大的成本,而且在我不必花费时间进行服务器内务处理(或者在主板出现故障时与戴尔的支持团队混乱).

记住,我在谈论PaaS服务,我对使用虚拟机不感兴趣,因为它与物理服务器有同样的内务处理问题.

现在,我正在考虑为我的客户提供的一项服务也是网络托管和托管交换.这两项服务都是从我的共同硬件提供的,但是在没有VM的情况下,我没有能力在IIS中创建任意网站.

Windows Azure确实提供了简单的网络托管服务,我可以使用它来向我的最终用户销售网络托管,但我找不到任何在线资源,如果微软允许这样做.

至于托管Exchange - 微软不提供Exchange-on-Azure(除非你把你的SPLA许可证带到运行Exchange的VM上),但如果我朝这个方向前进,我不妨完全放弃自我管理而只是转售白标托管Exchange服务.

回到网站,是否有人知道我是否可以直接向其他人收取代表他们创建/管理Azure网站的费用?

azure azure-web-sites

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

执行相同的查询两次,但使用单个不同的WHERE子句

请原谅我的问题的简单性,我有一个脑屁:

这是我的表架构:

Foo( FooId, BarDate dateTime, Baz int )
Run Code Online (Sandbox Code Playgroud)

鉴于此查询

SELECT
    MAX( Foo.BarData )
FROM
    Foo
WHERE
    Foo.Baz = 2
    AND
    Foo.BarData < @dateParameter
Run Code Online (Sandbox Code Playgroud)

在某些情况下,此查询会返回,NULL因为没有符合条件的行,在这些情况下,我希望查询返回相同的值,除非where Foo.Baz = 0.

我可以用两个子查询来做,但它似乎是一个黑客.有没有更好的方法?

SELECT
    COALESCE( Attempt1.BarData, Attempt2.BarData )
FROM
    (
        SELECT
            MAX( Foo.BarData ) As BarData
        FROM
            Foo
        WHERE
            Foo.Baz = 2
            AND
            Foo.BarData < @dateParameter
    ) As Attempt1
    OUTER JOIN
    (
        SELECT
            MAX( Foo.BarData ) As BarData
        FROM
            Foo
        WHERE
            Foo.Baz = 0
            AND
            Foo.BarData < @dateParameter
    ) As Attempt2 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

哪个IDE用于在Phonegap中开发应用程序?

我是Phonegap.i的新手,我目前在iOS应用程序开发人员工作.我想开始使用Phonegap开发应用程序.我想知道哪个开发平台(IDE)用于开发Phonegap应用程序?

我可以使用Dreamweaver开发整个应用程序吗?

我不希望在Xcode中使用Phonegap.有没有办法在Windows PC中使用Phonegap开发iOS应用程序?

提前致谢.

cordova

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

将regsvr32作为WIX安装程序的一部分运行

我编写了一个通过WIX生成的MSI分发的COM组件.

COM组件具有相当复杂和非静态的注册逻辑,这意味着直接在Windows Installer WXS文件中嵌入注册信息不是一个可行的选项 - 注册必须使用regsvr32- 并且它是一个32位的COM组件,所以它必须使用32位版本regsvr32.exe- %SystemRoot%\SysWow64\regsvr32.exe在64位Windows或%SystemRoot%\System32\regsvr32.exex86 Windows上.

我注意到WIX与这个WXS XML有两个问题:

<InstallExecuteSequence>
    <Custom Action="COMRegister"   After="InstallFinalize">NOT Installed</Custom>
    <Custom Action="COMUnregister" After="InstallInitialize">Installed</Custom>
</InstallExecuteSequence>

<CustomAction Id="COMRegister"   Directory="APPLICATIONROOTDIRECTORY" ExeCommand='regsvr32.exe /s "[APPLICATIONROOTDIRECTORY]Component.dll"' />
<CustomAction Id="COMUnregister" Directory="APPLICATIONROOTDIRECTORY" ExeCommand='regsvr32.exe /s /u "[APPLICATIONROOTDIRECTORY]Component.dll"' />
Run Code Online (Sandbox Code Playgroud)
  1. regsvr32.exe引用了错误.我注意到x64版本resgvr32.exe是在64位系统而不是32位版本上运行的.
  2. regsvr32.exe在没有提升权限的情况下运行,因此COM注册失败E_ACCESSDENIED.

对于1.它可以工作,如果我硬编码regsvr32.exe可执行文件的路径使用[WindowsFolder]\SysWOW64\regsvr32.exe,但这SysWow64不适用于不存在的真正的32位机器.

对于2.我在线阅读更改After="InstallFinalize" toAfter ="RemoveExistingProducts" would cause it to run with elevated permissions, however instead this just gives me errors aboutRemoveExistingProducts`是一个未解析的符号名称.

我该如何解决这两个问题?

更新

(在过去2小时内遇到这个问题后,我确信WIX的作者是HP …

regsvr32 wix

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

C#通过<T>定义基类

我试图找到一种从泛型基类派生类的方法.说:

sealed public class Final : Base<Something>
{

}

public class Base<T> : T
    where T : Anything // <-- Generics do not allow this
{

}
Run Code Online (Sandbox Code Playgroud)

在C#中,这似乎不可能.

有没有其他解决方案来实现类似的东西?

我发现了这个StackOverflow问题,但它似乎没有解决问题,或者至少我不明白它应该如何解决.

编辑:

我想得到的结果是能够做到这样的事情:

Anything[] anything;
//Assign some Instances to anything 

foreach(Final final in anything){
     //do something with final
}
Run Code Online (Sandbox Code Playgroud)

c# generics inheritance dynamic

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

如何比较C#中的字符串值?

我从SQL数据库中提取数据,我正在使用以下语句填充空白或缺少的缺失数据.

string.Join(
    ",",
    from
        r in siteData.Rows.OfType<DataRow>() 
    select
        r[28] == DBNull.Value ? "null" : r[28]);
Run Code Online (Sandbox Code Playgroud)

我想用空值替换-9999的值.

c# sql

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

自2017年中期以来,Azure App Services(Azure网站)上的X509Certificate2?

我有一个.NET Framework 4.7应用程序,允许用户以PFX或PKCS#12格式上传X.509证书(想想:包含私钥的"SSL证书"),然后将证书加载到System.Security.Cryptography.X509Certificates.X509Certificate2实例中.由于我的应用程序代码也需要重新导出证书,我指定了该X509KeyStorageFlags.Exportable选项.

在我的生产Web服务器上的IIS下w3wp.exe运行时,未加载运行在其下的标识的Windows用户配置文件,因此我不指定该UserKeySet标志.

String filePassword = ...
Byte[] userProvidedCertificateFile = ...

using( X509Certificate2 cert = new X509Certificate2( rawData: userProvidedCertificateFile, password: filePassword, keyStorageFlags: X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet )
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

在2017年初,我将此代码部署到Azure应用服务(也称为Azure网站)实例,并且它工作正常 - 最初失败后因为我确实UserKeySet设置了标志(因为Azure App Services不加载用户配置文件证书存储.

但是,自2017年中期(可能在5月或6月左右)以来,我的应用程序已停止工作 - 我假设Azure应用服务已移至更新的系统(尽管Kudu报告我的应用程序正在Windows Server 2012(NT 6.2.9200.0)上运行.

它目前失败,有两个错误消息根据输入而变化:

  • CryptographicException "该系统找不到指定的文件."
  • CryptographicException "拒绝访问."

我编写了一个广泛的测试用例,它尝试不同的X509Certificate2构造函数参数组合,以及有和没有WEBSITE_LOAD_CERTIFICATESAzure应用程序设置.

以下是我使用上传的PFX/PKCS#12证书文件时的调查结果,该文件包含私钥但没有密码保护:

  • 在我的开发箱上运行IIS Express:
    • 无论X509KeyStorageFlags值如何,加载证书文件总是成功的.
    • 导出证书文件至少需要X509KeyStorageFlags.Exportable.
  • w3wp.exe未加载用户配置文件的生产服务器(不是Azure应用服务)上的IIS下运行:
    • 加载证书文件要求X509KeyStorageFlags.UserKeySet是 …

azure x509certificate azure-web-sites

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

如何使用应有的自定义断言并维护特定于呼叫站点的断言消息?

我在我的 xUnit 测试中使用了优秀的Shouldly,我发现自己在不同的测试中使用了断言的集合序列,所以我将它们组合成新的断言扩展方法 - 但是当我这样做时,我丢失了Shouldly上下文断言消息。

这是我的旧代码,它Shouldly用于在Shouldly断言错误中包含源级信息和调用站点上下文:

[Fact]
public void Dict_should_contain_valid_Foobar_Bar_entry()
{
    IDictionary<String,Bar> dict = ...
    dict.TryGetValue( "Foobar", out Bar bar ).ShouldBeTrue();
    bar.ShouldNotBeNull();
    bar.ChildList.Count.ShouldBe( expected: 3 );
    bar.Message.ShouldBeNull();
}

[Fact]
public void Dict_should_contain_valid_Barbaz_Bar_entry()
{
    IDictionary<String,Bar> dict = ...
    dict.TryGetValue( "Barbaz", out Bar bar ).ShouldBeTrue();
    bar.ShouldNotBeNull();
    bar.ChildList.Count.ShouldBe( expected: 3 );
    bar.Message.ShouldBeNull();
}
Run Code Online (Sandbox Code Playgroud)

我在同一个项目中将它转换为这个新的扩展方法:

public static void ShouldBeValidBar( this IDictionary<String,Bar> dict, String barName )
{
    dict.ShouldNotBeNull();
    dict.TryGetValue( barName, out Bar bar ).ShouldBeTrue();
    bar.ShouldNotBeNull(); …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing assert xunit shouldly

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

CSS Flexbox 具有位置绝对混淆

我很困惑这是如何工作的,有人能告诉我到底发生了什么吗?

body,
html {
  padding: 0;
  margin: 0;
  height: 100vh;
  width: 100%;
}

.chat-break {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 20px;

}

.chat-break .line {
  border-bottom: 1px solid #ddd;
  width: 100%;
}

.chat-break .date {
  color: #B5B5B5;
  position: absolute;
  background-color: #fff;
  padding-left: 8px;
  padding-right: 8px;
  
}
Run Code Online (Sandbox Code Playgroud)
<div class="chat-break">
    <div class="line">
    </div>
    
    <p class="date">Today</p>
</div>
  
Run Code Online (Sandbox Code Playgroud)

我的理解:

  • .chat-breakflexbox 有两个元素.line.date
  • ...但是在弹性盒内使用position: absolute.date不再是它自己的元素之后?
  • 那为什么“今天”会在线居中呢?

css

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