这是我的代码:
protected void SaveMyImage_Click(object sender, EventArgs e)
{
string imageUrl = Hidden1.Value;
string saveLocation = Server.MapPath("~/PictureUploads/whatever2.png") ;
HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
WebResponse imageResponse = imageRequest.GetResponse();
Stream responseStream = imageResponse.GetResponseStream();
using (BinaryReader br = new BinaryReader(responseStream))
{
imageBytes = br.ReadBytes(500000);
br.Close();
}
responseStream.Close();
imageResponse.Close();
FileStream fs = new FileStream(saveLocation, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
try
{
bw.Write(imageBytes);
}
finally
{
fs.Close();
bw.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
顶部imageUrl声明采用Base64图像字符串,我想将其转换为图像.我认为我的代码集仅适用于像"www.mysite.com/test.jpg"这样的图像而不适用于Base64字符串.有人有什么建议吗?谢谢!
我正在寻找最安全的方式来安排appFabric缓存调用的datacache和datacache工厂的使用,每页加载400到700个缓存(几乎没有任何放置).似乎使用单个静态DataCacheFactory(或者可能是循环设置中的一对)是要走的路.
我是否为每个DataCache对象请求调用GetCache("cacheName"),还是在初始化DataCache工厂时将其设置为静态并将其用于所有调用?
我是否必须处理异常,检查失败代码并尝试重试?
当多个线程尝试使用缓存存储并且想要相同的项目(按键)时,是否必须考虑争用?
是否有某种文档正确地探讨了它的设计和用法?
我到目前为止从论坛收集的一些信息:
http://social.msdn.microsoft.com/Forums/en-AU/velocity/thread/98d4f00d-3a1b-4d7c-88ba-384d3d5da915
"创建工厂涉及到连接到集群并且可能需要一些时间.但是一旦你拥有了工厂对象和你想要使用的缓存,你可以简单地重用这些对象来执行put并进入缓存,你应该看到更快的表现."
http://social.msdn.microsoft.com/Forums/en-US/velocity/thread/0c1d7ce2-4c1b-4c63-b525-5d8f98bb8a49
"创建单个DataCacheFactory(singleton)比创建多个DataCacheFactory更有效.你不应该为每个调用创建DataCacheFactory,它会有性能损失."
"请尝试在您的单例中封装循环算法(具有3/4/5工厂实例)并比较负载测试结果."
http://blogs.msdn.com/b/velocity/archive/2009/04/15/pushing-client-performance.aspx
"您可以增加客户端数量以增加缓存吞吐量.但有时如果您希望拥有较小的客户端集并增加吞吐量,则需要使用多个DataCacheFactory实例.DataCacheFactory实例创建与服务器的连接(例如, .g如果有3个服务器,它将创建3个连接)并将来自数据缓存的所有请求多路复用到这些连接上.因此,如果put/get卷非常高,这些TCP连接可能会出现瓶颈.所以一种方法是创建多个DataCacheFactory实例,然后对它们使用操作."
这里到目前为止使用了什么...调用属性,如果返回值不为null,则执行操作.
private static DataCache Cache
{
get
{
if (_cacheFactory == null)
{
lock (Sync)
{
if (_cacheFactory == null)
{
try
{
_cacheFactory = new DataCacheFactory();
}
catch (DataCacheException ex)
{
if (_logger != null)
{
_logger.LogError(ex.Message, ex);
}
}
}
}
}
DataCache cache = null;
if (_cacheFactory != null)
{
cache = _cacheFactory.GetCache(_cacheName);
}
return cache;
}
}
Run Code Online (Sandbox Code Playgroud)
在Microsoft AppFabric论坛上查看此问题:http://social.msdn.microsoft.com/Forums/en-AU/velocity/thread/e0a0c6fb-df4e-499f-a023-ba16afb6614f
我认为这两个测试的行为应该完全相同,事实上我已经使用MS Test在我的项目中编写了测试,现在却发现它不像NUnit那样尊重预期的消息.
NUnit(失败):
[Test, ExpectedException(typeof(System.FormatException), ExpectedMessage = "blah")]
public void Validate()
{
int.Parse("dfd");
}
Run Code Online (Sandbox Code Playgroud)
MS测试(通过):
[TestMethod, ExpectedException(typeof(System.FormatException), "blah")]
public void Validate()
{
int.Parse("dfd");
}
Run Code Online (Sandbox Code Playgroud)
无论我给ms测试什么消息,它都会通过.
如果消息不正确,有没有办法让ms测试失败?我甚至可以创建自己的异常属性吗?我宁愿不必为发生这种情况的每个测试编写一个try catch块.
我正在与我合作的另一位程序员进行辩论.
对于数据库返回类型,是否有任何重要的内存使用或性能差异,或其他缺点应该使某人避免使用DataSet和DataTables并支持实现的类型IEnumerable<T>...反之亦然
我更喜欢返回实现IEnumerable<T>(List<T>, T[] etc)的类型,因为它更轻量级,在访问属性时强烈地键入对象,允许有关底层类型的更丰富信息等.当手动使用数据读取器时,它们确实需要更多时间来设置.
这几天使用DataTables的唯一理由就是懒惰吗?
例如,如果我想使用jQuery选择某个具有某个类的元素,并且仅仅因为这个原因,是否应该总是期望这些类应该在css中定义?
<div class="xyz">
something
</div>
<div class="xyz">
something else
</div>
//with example jQuery
$(".xyz").hide();
//is it wrong no element 'xyz' is defined in css?
Run Code Online (Sandbox Code Playgroud) 实现某些自定义序列化的对象可以序列化和反序列化为不同的格式,例如Xml或byte [].
我遇到了一个问题,当我放入缓存时,AppFabric在类上运行IXmlSerializable实现时,我宁愿强制它使用二进制. AppFabric缓存 - 对象的序列化和反序列化要求是什么?
我可以配置吗?
(目前,解决方法是以编程方式将对象序列化为byte [],然后将其发送到缓存中,在出路时反转过程).
configuration serialization caching appfabric appfabric-beta-2
当我在asp.net&c#.net中构建我的项目时,它产生了错误
"命名空间'System.Data'中不存在类型或命名空间名称'SQLite'(你是否缺少程序集引用?"
所以,当我试图添加它作为参考时,我无法在我的库中找到"System.Data.SQLite".如何克服这个问题.
为什么每个月的员工平均得分总和等于员工平均得分(曾经)?
平均
SELECT Avg(r.score) AS rawScore
FROM (ET INNER JOIN Employee AS e ON ET.employeeId = e.id) INNER JOIN (Employee AS a INNER JOIN Review AS r ON a.id = r.employeeId) ON ET.id = r.ETId
WHERE (((e.id)=@employeeId))
Run Code Online (Sandbox Code Playgroud)
返回 80.737
按月平均
SELECT Avg(r.score) AS rawScore, Format(submitDate, 'mmm yy') AS MonthText, month(r.submitDate) as mm, year(submitDate) as yy
FROM (ET INNER JOIN Employee AS e ON ET.employeeId = e.id) INNER JOIN (Employee AS a INNER JOIN Review AS r ON a.id = r.employeeId) …Run Code Online (Sandbox Code Playgroud) 我最近升级到VS2010 Premium和Resharper 5.1.3000.12.它的测试运行器现在不会执行MS测试.
对话框显示但没有任何反应.
因此,当打开\ Bin\Debug\TestResults .trx文件时,我看到报告为未执行的测试列表.
如果我点击此对话框中的运行,它们将执行正常.
如果我单击以查看"测试运行错误"链接,我会看到错误消息:
"无法排队测试运行'user @ network date':系统无法找到指定的文件"
Nunit测试工作正常.
有任何想法吗?谢谢
我的卡上有一些应用程序,我选择的目标平台是Android,但我知道有一些SDK广告能够编写一次并部署到多个移动操作系统.其中一个似乎是橘子酱.
该产品特别声称每个设备编译为本机代码以实现兼容性.在我承诺价格标签之前,甚至在制造商预期的框架之外进行开发之前,我想知道的是人们对此问题的看法.
编译为本机代码可能会有很高的性能,但我猜测有一个权衡,你会失去对google/apple等提供的所有API的轻松访问权限.
寻找任何其他优点/缺点,以及与橘子酱一样的人是否会遇到路障,希望他们没有采取行动.
我的应用程序不需要3D引擎,它似乎构成了橘子酱展示中的大部分示例应用程序.然而,我的应用程序通常需要存储大量的关系数据和点击Web服务,因此方便地访问sql compact会非常有用.
c# ×3
appfabric ×2
caching ×2
mstest ×2
asp.net ×1
base64 ×1
classname ×1
css ×1
datatable ×1
group-by ×1
identifier ×1
ienumerable ×1
jquery ×1
list ×1
marmalade ×1
mobile ×1
ms-access ×1
nunit ×1
performance ×1
precision ×1
resharper ×1
rounding ×1
sql ×1
standards ×1
testing ×1
unit-testing ×1