Wednesday, August 22, 2012

Token-based server access validation failed with an infrastructure error.

Recently I went in a newly built MS SQL Server 2008 R2 instance on Windows Server 2008 R2 server, I got login failure when trying to connect to SQL Server instance through SQL Server Management Studio (SSMS) using windows authentication. And I have added my account as SA in the SQL instance. I checked the error message detail. It was:

Error: 18456, Severity: 14, State: 11.

Login failed for user 'Domain\myuser'. Reason: Token-based server access validation failed with an infrastructure error.

This is the first time I got this error since I didn’t run any SQL server on Windows Server 2008 R2 before. After a little bit research, it was caused by UAC (User Access Control). I ran SSMS with option “Run as Administrator”. And I was able to login to SQL Server successfully. Here is a blog post explaining very clear about it.

Wednesday, August 15, 2012

How to enable new resolutions on Lenovo S10-3t

The best resolution for S10-3t is 1024x600. But actually it can support better resolution than that. Here is the trick to edit the registry to get new screen resolutions:

  • Run "regedit.exe"
  • Go to 
    • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\
      Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000
    • Find "Display1_DownScalingSupported" and open it.
    • Change the value to 1
    • Close the registry and restart your system.

Monday, August 13, 2012

Friday, August 10, 2012

Mobile’s three kingdoms story…

iOS: New versions are coming out every month. I have to upgrade again…

Android: New version is out. But when can I get the upgrade…

Windows Phone: New version is finally coming. But why can’t I get the upgrade…

Wednesday, August 08, 2012

Wednesday, August 01, 2012

How to drop a database with publication

I got a database on a log shipping subscriber server which I want to drop it. But the publisher database has some active publications. SQL Server doesn't allow you to drop it directly because it thinks it has replications going on. So the way to drop it is putting the database into Offline mode first. Then you should be able to drop it. (NOTE: PLEASE ALWAYS MAKE SURE YOU HAVE A BACKUP BEFORE DROPPING ANY DATABASE!!!)

ALTER DATABASE MyDB SET OFFLINE;


Thursday, July 26, 2012

Call SOAP Web Service With Basic Authorization

Recently I have to call a SOAP Web Service with basic authorization in .Net program. But there is not a simple way to configure the Service Proxy to send the authorization header in HTTP package. I did a little bit search on Internet. Found this solution. Basically, it is adding the header info when initiating the call to web service. It needs an “Authorization” header which is added to the HTTP call which contains the base64 encoded user name and password like this:

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

Following are the sample code from this post.

Firstly a method to encode the credentials:

private string EncodeBasicAuthenticationCredentials(string username, string password)
{
  //first concatenate the user name and password, separated with :
  string credentials = username + ":" + password;

  //Http uses ascii character encoding, WP7 doesn’t include
  // support for ascii encoding but it is easy enough to convert
  // since the first 128 characters of unicode are equivalent to ascii.
  // Any characters over 128 can’t be expressed in ascii so are replaced
  // by ?
  var asciiCredentials = (from c in credentials
                     select c <= 0x7f ? (byte)c : (byte)'?').ToArray();

  //finally Base64 encode the result
  return Convert.ToBase64String(asciiCredentials);
} 

Now that we have a means of encoding our credentials we just need to add them to the headers of our WCF request.  We can easily do this by wrapping the call in an OperationContextScope:

var credentials = EncodeBasicAuthenticationCredentials("username", "password");

using (OperationContextScope scope =
          new OperationContextScope(service.InnerChannel))
{
  HttpRequestMessageProperty request = new HttpRequestMessageProperty();
  request.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + credentials;

  OperationContext.Current.OutgoingMessageProperties.Add(
                                     HttpRequestMessageProperty.Name, request);

  service.DoSomethingAsync();
}

Friday, July 20, 2012

How to make barcode font display correctly in web service

Just got an issue when using barcode font in a web service hosting in IIS7. The barcode font can't display in the document which is generated inside the web service. And the solution to make it work is setting the option "Load User Profile" of IIS 7 application pool to True.

Friday, June 01, 2012

How to check what SQL Server Trace Flags are enabled

If you use some trace flags in SQL Server, and want to find out what trace flags are enabled, just run this:

dbcc tracestatus(-1)

Thursday, May 31, 2012

VS debugger 'magic names'

There is a discussion on StackOverflow about "Where to learn about VS debugger 'magic names'". It is quite useful if you are looking inside the compiler.

http://stackoverflow.com/questions/2508828/where-to-learn-about-vs-debugger-magic-names

Continue to blog...

Almost forgot I have this blog site. I decided to continue to write something again. :)