File.WriteAllBytes
將存放在SQL2008的image型態欄位的檔案,轉成實體檔案
ps:以下程式在windows form測試
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = ds.Tables["resultTable"];
DataRow dr = dt.rows[0];
File.WriteAllBytes(@"C:\" + dr["filename"].ToString(), (byte[])dr["data"]);
}
2013年10月31日 星期四
2013年10月30日 星期三
簡易AD驗証
簡易AD驗証
C#:
C#:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.DirectoryServices;
- public partial class Test_tsLDAP : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- /// <summary>
- /// Button1 Event
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void Button1_Click(object sender, EventArgs e)
- {
- try
- {
- string a;
- a = isADauth("user1", "pass1");
- Response.Write(a.ToString());
- }
- catch (Exception ex)
- {
- Response.Write(ex.Message);
- //throw ex;
- }
- }
- /// <summary>
- /// AD驗証
- /// </summary>
- /// <param name="uid">帳號</param>
- /// <param name="passwd">密碼</param>
- /// <returns></returns>
- public static string isADauth(string uid, string passwd)
- {
- string authentic = "";
- try
- {
- DirectoryEntry entry = new DirectoryEntry("LDAP://DC01", uid, passwd);
- object nativeObject = entry.NativeObject;
- authentic = "LOGIN_SUCCESSFUL";
- }
- catch (DirectoryServicesCOMException dscom_ex)
- {
- //authentic = "LOGIN_FAILED";
- throw dscom_ex;
- }
- return authentic;
- }
- }
2013年10月24日 星期四
擷取元件 (CLSID 為 {00024500-0000-0000-C000-000000000046}) 的 COM Class Factory 失敗
擷取元件 (CLSID 為
{00024500-0000-0000-C000-000000000046}) 的 COM Class Factory 失敗,因為發生下列錯誤: 80040154 類別未登錄 (發生例外狀況於 HRESULT:
0x80040154 (REGDB_E_CLASSNOTREG))。
描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外狀況詳細資訊: System.Runtime.InteropServices.COMException: 擷取元件 (CLSID 為 {00024500-0000-0000-C000-000000000046}) 的 COM Class Factory 失敗,因為發生下列錯誤: 80040154 類別未登錄 (發生例外狀況於 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))。
例外狀況詳細資訊: System.Runtime.InteropServices.COMException: 擷取元件 (CLSID 為 {00024500-0000-0000-C000-000000000046}) 的 COM Class Factory 失敗,因為發生下列錯誤: 80040154 類別未登錄 (發生例外狀況於 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))。
以下嘗試的解決方式:
1. Start->run->regedit
Find 00024500-0000-0000-C000-000000000046 ->資料夾按右鍵內容,安全性加入NETWORK SERVICE給予權限,找遍所有00024500-0000-0000-C000-000000000046相關的機碼全部設了Network service 與 IIS_IUSRS完全控制的權限,結果失敗
2. Start ->
run -> DCOMCNFG
來想照著以上說明去「元件服務」設定DCOM元件,竟然沒有Microsoft Excel Application。因為Excel是32位元,64位元的作業系統看不到該元件,結果失敗
3.在web.config 加入
<configuration>
<system.web>
<identity impersonate="true" userName="adminUser"
password="adminUserPassword" />
帳號密碼請先使用本機administrator帳號試比較沒問題
若是 Server 2008
x64 請建立下述資料夾
C:\Windows\SysWOW64\config\systemprofile\Desktop
若是 Server 2008 x86 請建立下述資料夾
C:\Windows\System32\config\systemprofile\Desktop
C:\Windows\SysWOW64\config\systemprofile\Desktop
若是 Server 2008 x86 請建立下述資料夾
C:\Windows\System32\config\systemprofile\Desktop
以上的設定。結果成功
4. Start -> run -> mmc comexp.msc /32
元件服務 -> 電腦 ->我的電腦 ->DCOM設定 ->Microsoft Excel Application ->安全性->啟動和啟用權限&存取權限->自訂權限加入Network
service與IIS_IUSRS完全控制權限, 識別身份用互動式使用者。結果成功
2013年10月23日 星期三
Could not load file or assembly 'Microsoft.ReportViewer.ProcessingObjectModel
無法載入檔案或組件 'Microsoft.ReportViewer.ProcessingObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
Could not load file or assembly 'Microsoft.ReportViewer.ProcessingObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Install the following:
Microsoft Report Viewer 2010 SP1 Redistributable Package
Microsoft Report Viewer Redistributable 2010 SP1 Language Pack
http://www.microsoft.com/en-us/download/details.aspx?id=6610
http://www.microsoft.com/en-us/download/details.aspx?id=24932
Could not load file or assembly 'Microsoft.ReportViewer.ProcessingObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Install the following:
Microsoft Report Viewer 2010 SP1 Redistributable Package
Microsoft Report Viewer Redistributable 2010 SP1 Language Pack
http://www.microsoft.com/en-us/download/details.aspx?id=6610
http://www.microsoft.com/en-us/download/details.aspx?id=24932
無法載入檔案或組件 'sapnco_utils.DLL' 或其相依性的其中之一。 找不到指定的模組
無法載入檔案或組件 'sapnco_utils.DLL' 或其相依性的其中之一。 找不到指定的模組。
描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外狀況詳細資訊: System.IO.FileNotFoundException: 無法載入檔案或組件 'sapnco_utils.DLL' 或其相依性的其中之一。 找不到指定的模組。
原始程式錯誤:
例外狀況詳細資訊: System.IO.FileNotFoundException: 無法載入檔案或組件 'sapnco_utils.DLL' 或其相依性的其中之一。 找不到指定的模組。
原始程式錯誤:
在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。
|
堆疊追蹤:
[FileNotFoundException: 無法載入檔案或組件 'sapnco_utils.DLL' 或其相依性的其中之一。 找不到指定的模組。]
System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String
codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint,
StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean
throwOnFileNotFound, Boolean forIntrospection, Boolean
suppressSecurityChecks) +0
System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String
codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint,
StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean
throwOnFileNotFound, Boolean forIntrospection, Boolean
suppressSecurityChecks) +34
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName
assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly,
StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean
throwOnFileNotFound, Boolean forIntrospection, Boolean
suppressSecurityChecks) +152
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,
Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr
pPrivHostBinder, Boolean forIntrospection) +77
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,
Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean
forIntrospection) +16
System.Reflection.Assembly.Load(String assemblyString) +28
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String
assemblyName, Boolean starDirective) +38
[ConfigurationErrorsException: 無法載入檔案或組件 'sapnco_utils.DLL' 或其相依性的其中之一。 找不到指定的模組。]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String
assemblyName, Boolean starDirective) +752
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()
+218
System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo
ai) +130
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection
compConfig) +170
System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies()
+91
System.Web.Compilation.BuildManager.CallPreStartInitMethods(String
preStartInitListPath) +258
System.Web.Compilation.BuildManager.ExecutePreAppStart() +135
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager
appManager, IApplicationHost appHost, IConfigMapPathFactory
configMapPathFactory, HostingEnvironmentParameters hostingParameters,
PolicyLevel policyLevel, Exception appDomainCreationException) +516
[HttpException (0x80004005): 無法載入檔案或組件 'sapnco_utils.DLL' 或其相依性的其中之一。 找不到指定的模組。]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9874840
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)
+101
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest
wr, HttpContext context) +254
|
版本資訊: Microsoft .NET Framework 版本:4.0.30319;
ASP.NET 版本:4.0.30319.18055
Please try:
1.Install Microsoft Visual C++ 2010 Redistributable Package (x86) and
Microsoft Visual C++ 2010 Redistributable Package (x64)
2. IIS Setting / Application Pool / Advanced Settings / Enable 32-Bit Applications = True
2013年10月17日 星期四
Exchange Service Binding
使用Exchange Service Send Mail
C#
C#
- public void SendMessage(ExchangeServiceBinding ewsServiceBinding, ItemIdType iiCreateItemid)
- {
- SendItemType siSendItem = new SendItemType();
- siSendItem.ItemIds = new BaseItemIdType[1];
- siSendItem.SavedItemFolderId = new TargetFolderIdType();
- DistinguishedFolderIdType siSentItemsFolder = new DistinguishedFolderIdType();
- siSentItemsFolder.Id = DistinguishedFolderIdNameType.sentitems;
- siSendItem.SavedItemFolderId.Item = siSentItemsFolder;
- siSendItem.SaveItemToFolder = true;
- siSendItem.ItemIds[0] = (BaseItemIdType)iiCreateItemid;
- SendItemResponseType srSendItemReponseMessage = ewsServiceBinding.SendItem(siSendItem);
- if (srSendItemReponseMessage.ResponseMessages.Items[0].ResponseClass == ResponseClassType.Error)
- {
- Console.WriteLine("Error Occured");
- Console.WriteLine(srSendItemReponseMessage.ResponseMessages.Items[0].MessageText);
- }
- else
- {
- Console.WriteLine("Message Sent");
- }
- }
- public string SendMail_ex2007(String Sender, String reciver, String subject, String content)
- {
- ExchangeServiceBinding esb = new ExchangeServiceBinding();
- esb.Url = "https://mail.xxx.com/EWS/Exchange.asmx";
- servicea = esb;
- //System.Net.ServicePointManager.ServerCertificateValidationCallback =
- System.Net.ServicePointManager.ServerCertificateValidationCallback = (Object obj, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors errors) => true;
- esb.Credentials = new NetworkCredential("USERNAME", "PASSWORD", "SMTP");
- MessageType emailMessage = new MessageType();
- emailMessage.From = new SingleRecipientType();
- //set up a single sender
- //寄件者
- emailMessage.From.Item = new EmailAddressType();
- emailMessage.From.Item.EmailAddress = Sender;
- //標題
- emailMessage.Subject = subject;
- emailMessage.Body = new Microsoft.ServiceModel.Channels.Mail.ExchangeWebService.Exchange2007.BodyType();
- emailMessage.Body.BodyType1 = BodyTypeType.Text;
- //本文
- emailMessage.Body.BodyType1 = BodyTypeType.HTML;
- emailMessage.Body.Value = content;
- //將email寄出
- emailMessage.Sender = new SingleRecipientType();
- emailMessage.Sender.Item = new EmailAddressType();
- emailMessage.Sender.Item.EmailAddress = Sender;
- emailMessage.ToRecipients = new EmailAddressType[1];
- emailMessage.ToRecipients[0] = new EmailAddressType();
- emailMessage.ToRecipients[0].EmailAddress = reciver;
- emailMessage.Sensitivity = SensitivityChoicesType.Normal;
- //建立附件
- ItemIdType iiCreateItemid = CreateDraftMessage(esb, emailMessage);
- //iiCreateItemid = CreateAttachment(esb, iiCreateItemid);
- SendMessage(esb, iiCreateItemid);
- return "sendok";
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- SendMail_ex2007("SenderName", "xxx@gmail.com", "smtp.xxx.com", "subject", "Content");
- }
非同步執行緒寄送郵件
非同步執行緒寄送郵件
C#
C#
- #region 非同步執行緒寄送郵件
- //1-1.建立非同步委派簽章
- delegate string AsyncSendMail();
- //1-2.建立了一個具有IAsyncResult參數的Callback方法
- void EndCallback(IAsyncResult ar)
- {
- AsyncSendMail asynDelegate = ar.AsyncState as AsyncSendMail;
- }
- //1-3.建立執行主體程式
- string SendMailAsync()
- {
- try
- {
- #region 寄送郵件執行緒-Start
- //宣告執行緒
- System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
- sw.Reset();
- //開始執行緒
- sw.Start();
- //發送郵件
- System.Net.Mail.MailMessage message = new MailMessage();
- SmtpClient smtp = new SmtpClient();
- message.From = new MailAddress(strFrom);
- message.To.Add(new MailAddress(strTo));
- message.SubjectEncoding = System.Text.Encoding.UTF8;
- message.Subject = "Test";
- message.Body = strBody;
- smtp.Host = "192.168.1.1";
- smtp.Port = "25";
- smtp.Send(message);
- //停止執行緒
- sw.Stop();
- #endregion 執行緒-End
- return "successful";
- }
- catch (Exception)
- {
- return "failed";
- //throw;
- }
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- //1-4.實體化委派
- AsyncSendMail asynDelegate = new AsyncSendMail(SendMailAsync);
- //1-5.開始非同步作業
- asynDelegate.BeginInvoke(EndCallback, asynDelegate);
- }
- #endregion 非同步執行緒寄送郵件
HTTP Error 404.0 - Not Found
Create New IIS Web Site HTTP Error 404.0 - Not Found
解決方法:Application Pools / Advanced Settings / Enable 32-Bit Applications = true
-------------------------------
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Please try the next...
解決方法:Application Pools / Advanced Settings / Enable 32-Bit Applications = true
-------------------------------
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Please try the next...
訂閱:
文章 (Atom)