Вы можете BASE64 кодировать содержание изображения непосредственно в атрибут SRC, однако, я полагаю, что только Firefox проанализирует этот назад в изображение.
то, Что я обычно делаю, является создаванием очень легкий вес HTTPHandler для обслуживания изображений:
using System;
using System.Web;
namespace Example
{
public class GetImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.QueryString("id") != null)
{
Blob = GetBlobFromDataBase(id);
context.Response.Clear();
context.Response.ContentType = "image/pjpeg";
context.Response.BinaryWrite(Blob);
context.Response.End();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
можно сослаться на это непосредственно в теге img:
<img src="GetImage.ashx?id=111"/>
Или, Вы могли даже создать управление сервером, которое делает это для Вас:
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Example.WebControl
{
[ToolboxData("<{0}:DatabaseImage runat=server></{0}:DatabaseImage>")]
public class DatabaseImage : Control
{
public int DatabaseId
{
get
{
if (ViewState["DatabaseId" + this.ID] == null)
return 0;
else
return ViewState["DataBaseId"];
}
set
{
ViewState["DatabaseId" + this.ID] = value;
}
}
protected override void RenderContents(HtmlTextWriter output)
{
output.Write("<img src='getImage.ashx?id=" + this.DatabaseId + "'/>");
base.RenderContents(output);
}
}
}
Это могло использоваться как
<cc:DatabaseImage id="db1" DatabaseId="123" runat="server/>
И конечно, Вы могли установить databaseId в codebehind по мере необходимости.
Самый легкий подход, чтобы позволить изменять полномочия от пользователя, который не позволил, делает это должно выполнить PowerShell как Администратора как команда выполнения:
Get-MsmqQueue -Name "MyQueue" -QueueType Private |
Set-MsmqQueueAcl -UserName "Everyone" -Allow FullControl
и затем редактируют полномочия от Вашего пользователя.