Expression Encoder 3 SDK를 사용하면 윈도우 환경에서 쉽게 동영상 인코딩과 썸네일 추출을 할 수 있습니다. Expression Encoder를 설치하면 SDK도 동시에 설치가 됩니다. SDK가 설치된 폴더를 보면 도움말과 함께 관련 어셈블리 그리고 샘플을 제공합니다. 샘플을 분석해보면 어렵지 않다는 걸 알수 있습니다.

하지만 배포할 때 두가지 오류가 나더군요. 해결하는데 조금 시간이 걸렸는데 이 삽질을 공유합니다.

1. 64bit 서버 환경에서 발생하는 오류

{"파일이나 어셈블리 'Microsoft.Expression.Encoder, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 지정된 파일을 찾을 수 없습니다.":"Microsoft.Expression.Encoder, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"}

에러는 'Microsoft.Expression.Encoder.dll'을 찾을 수 없다는 얘기입니다. 하지만 해당 어셈블리는 잘 원래 위치에 잘 있죠. 설치할때 글로벌 어셈블리 캐쉬에도 넣어보고 했지만 같은 에러가 발생합니다. 

 Expression Encoder는 64bit 버전이 없습니다. 32bit 버전 뿐이죠. 그렇다고 64bit OS가 설치되어 돌아가는 환경에서 사용할 수 없는 것은 아닙니다. 다만 실행될때 32bit 로 실행하라는 설정만 해주면 됩니다. 아래와 그림과 같이 빌드 Configuration Manager를 열어서 x86으로 고정시켜주고 빌드해서 실행하면 위의 에러를 해결할 수 있습니다.


2. 권한 문제로 발생하는 오류

ErrorSystem.TypeInitializationException: 'Microsoft.Expression.Encoder.SkuManager'의 형식 이니셜라이저에서 예외를 Throw했습니다. ---> System.Security.Principal.IdentityNotMappedException: ID 참조의 일부 또는 전부를 변환할 수 없습니다.
   위치: System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess)
   위치: System.Security.Principal.NTAccount.Translate(Type targetType)
   위치: System.Security.AccessControl.CommonObjectSecurity.ModifyAccess



위의 에러는 좀 처럼 감을 잡을 수 없습니다. SkuManager를 직접적으로 쓴적도 없고 ID를 본적도 없습니다. 한참을 고생한 결과 권한 문제라는 걸 알았습니다. 저는 Windows Service로 개발을 해서 서비스로 설치를 했기 때문에 아래와 같이 서비스를 실행하는 사용자를 권한이 높은 사용자로 변경해서 해결 했습니다.


ASP.NET에 Expression Encoder SDK를 붙여서 사용하시는 개발자들이 많은데요. 그럴 때는 IIS의 Application Pool의 사용권한과 관련이 있습니다. 이건 제가 직접 해보지는 못했는데 아래 그림처럼 Default Application Pool의 사용자 권한이 Network Service로 되어 있습니다. 이 권한과 Expression Encoder SDK를 사용하는 권한를 잘 따져 보면 답이 나오지 않을까 합니다.



신고

WRITTEN BY
ONESTONE

받은 트랙백이 없고 , 댓글 하나 달렸습니다.

트랙백을 보내세요

트랙백 주소 :: http://onestone.tistory.com/trackback/116 관련글 쓰기
  1. http://google.com
secret

트위터, 페이스북과 같은 SNS가 유행하면서 제한된 문자수를 극복하기 위해 또는 너무 길어서 지지분해 보이는 URL을 짧고 간결하게 표시하기 위한 짧은 URL(Short URL Service) 서비스가 필수가 되었습니다. 

tinyurl.com, shorl.com, goo.gl 등 짧은 URL 서비스를 제공하는 사이트가 많은데요. 그중에 많이들 쓰시는 bit.ly 서비스를 프로그래밍을 통해서 짧은 URL을 만들어 쓸 수 있습니다. OAuth, REST API, QR Code 등 몇 가지 방법을 제공하는데 그중에 가장 간단한 REST API 를 통해서 짧은 URL을 만드는 방법을 알아보겠습니다. 

준비
1) 먼저 bit.ly 사이트에 접속하셔서 계정을 만듭니다. http://bit.ly/a/sign_up
2) API Key를 받습니다.  http://bit.ly/a/your_api_key 
3) API 문서는 여기에 있어요. http://code.google.com/p/bitly-api/wiki/ApiDocumentation

요청/응답
1) HTTP GET으로 요청 URL을 만듭니다. 

요청 URL : http://api.bit.ly/v3/shorten 

http://api.bit.ly/v3/shorten?login=아이디&apiKey=API_KEY
&longUrl=긴URL&format=txt

요청 파라미터
 format  json, xml, txt를 지원합니다. 
 longUrl  원본 URL. 긴 URL (URL 인코딩 필요)
 domain   (옵션) bit.ly (기본값)를 쓸것인지? j.mp를 쓸 것인지?
 x_login  (옵션) 계정 만들때 사용한 아이디
 x_apiKey  (옵션) 준비단계에서 받은 API Key 

예)
http://api.bit.ly/v3/shorten?login=bitlyapidemo&apiKey=R_0da49e0a9118ff35f52f629d2d71bf07
&longUrl=http%3A%2F%2Fbetaworks.com%2F&format=json

예제 요청URL처럼 longUrl은 URL인코딩이 필요합니다. 

인증도 없고 HTTP GET으로 요청을 하니 매우 간단하네요. 

2) 응답받기

응답은 3가지 포멧으로 가능합니다. json (jsonp), xml, txt. 필요에 따라서 선택을 하면됩니다. 

JSON응답
{
   
"status_code": 200,
   
"data": {
       
"url": "http://bit.ly/cmeH01",
       
"hash": "cmeH01",
       
"global_hash": "1YKMfY",
       
"long_url": "http://betaworks.com/",
       
"new_hash": 0
   
},
   
"status_txt": "OK"
}

XML 응답
<?xml version="1.0" encoding="UTF-8"?>
<response>
   
<status_code>200</status_code>
   
<status_txt>OK</status_txt>
   
<data>
       
<url>http://bit.ly/cmeH01</url>
       
<hash>cmeH01</hash>
       
<global_hash>1YKMfY</global_hash>
       
<long_url>http://betaworks.com/</long_url>
     
<new_hash>0</new_hash>
   
</data>
</response>
 
txt 응답 
http://bit.ly/cmeH01

샘플코드 (C#)

             private string MakeShorURL(string longurl)

        {

            StringBuilder sb = new StringBuilder();

            //base

            sb.Append(@"http://api.bit.ly/v3/shorten?login=userid&

apiKey=R_xxxxx&format=txt&longUrl=");

            //server page

            sb.Append(Server.UrlEncode(longurl));

 

            // Make Short URL

            WebClient client = new WebClient();

            string shorturl = client.DownloadString(new Uri(sb.ToString()));

 

            return shorturl;

        }


메서드 하나로 짧은 URL을 얻었습니다. 

예제 코드에서는 txt 포멧으로 짧은 URL만 받아서 리턴을 했습니다. 에러처리가 없네요. txt 포멧일 때 에러는 HTTP 상태 코드인 403, 500, 503으로 떨어집니다. WebClient 에러처리 방법으로 하면 되겠습니다.

신고

WRITTEN BY
ONESTONE

받은 트랙백이 없고 , 댓글  7319개가 달렸습니다.

트랙백을 보내세요

트랙백 주소 :: http://onestone.tistory.com/trackback/115 관련글 쓰기
  1. 이전 댓글 더보기
  2. Have you got a telephone directory? <a href=" http://pybocalide.blog.com/ ">watch prozac nation online megavideo</a> record, Argus will return a reject message indicating this lock-in exists. This applies to
    <a href=" http://oeboraqeti.blog.com/ ">order cheap prozac online</a> Page 18 of 25
    <a href=" http://atebyibeje.blog.com/ ">prozac buy online canada</a> Send completed form to:
    <a href=" http://cidaadaro.blog.com/ ">buy prozac online canada</a> housing is available. The School will pay $5.00/night for student use of AHEC housing. PY4
    <a href=" http://kiucilak.blog.com/ ">get prozac online uk</a> service/volunteer opportunities for students under the supervision of the assigned preceptor. If the
  3. Cool site goodluck :) <a href=" http://haqaorulur.blog.com/ ">online prozac</a> amount dispensed is less than 10% of an original pack and in the reasonable opinion of the
    <a href=" http://qyhehilob.blog.com/ ">prozac online</a> not limited to MOA, ADME, dosage, indications, adverse effects, drug interactions, cost,
    <a href=" http://cidaadaro.blog.com/ ">buy cheap prozac</a> Carolina at Chapel Hill. Affiliation also includes the Doctor of Pharmacy partnership program with
    <a href=" http://ohonubumo.blog.com/ ">buy prozac without rx</a> not want to carry them home, but please do not take any of the house books with you without signing them out.
    <a href=" http://dorybaqyka.blog.com/ ">illegal buy prozac online</a> Change in Provider 49
  4. Your account's overdrawn <a href=" http://jolycesyba.blog.com/ ">buy prozac online uk</a> A. Pathophysiology of common pathophysiology basic principles with with infrequent or depth with no
    <a href=" http://fomycefohum.blog.com/ ">buy prozac online no prescription uk</a> Prescriptions on Hospital and their affiliated Clinics
    <a href=" http://pytidyraq.blog.com/ ">prozac buy online uk</a> The required batch header record is a fixed length record 75 bytes long.
    <a href=" http://aaqopio.blog.com/ ">fluoxetine buy online no prescription</a> The Office of Experiential Training and Continuing Pharmacy Education -TSU COPHS Page 31
    <a href=" http://imusiririka.blog.com/ ">cheap prozac online</a> immunity, you will need to get two doses of the vaccine if you have not already done so, and
  5. How much does the job pay? <a href=" http://www.tnaflix.com/profile/lekorufumobe ">loli underage porn</a> was dat a ring on da blonde one? and wow dis vid is awesome. like one of dose peep said.its one of dose dat u can keep fowardin..
    <a href=" http://www.tnaflix.com/profile/quetetuloyr ">incest loli pics free</a> Brotha has a big dick, but that is one fine hairy ass pussy and she took most of that dick. Love those laides that are wiling to suck ad fuck big black dicks.
  6. How much does the job pay? <a href=" http://www.tnaflix.com/profile/lekorufumobe ">loli underage porn</a> was dat a ring on da blonde one? and wow dis vid is awesome. like one of dose peep said.its one of dose dat u can keep fowardin..
    <a href=" http://www.tnaflix.com/profile/quetetuloyr ">incest loli pics free</a> Brotha has a big dick, but that is one fine hairy ass pussy and she took most of that dick. Love those laides that are wiling to suck ad fuck big black dicks.
  7. How much does the job pay? <a href=" http://www.tnaflix.com/profile/lekorufumobe ">loli underage porn</a> was dat a ring on da blonde one? and wow dis vid is awesome. like one of dose peep said.its one of dose dat u can keep fowardin..
    <a href=" http://www.tnaflix.com/profile/quetetuloyr ">incest loli pics free</a> Brotha has a big dick, but that is one fine hairy ass pussy and she took most of that dick. Love those laides that are wiling to suck ad fuck big black dicks.
  8. How much does the job pay? <a href=" http://www.tnaflix.com/profile/lekorufumobe ">loli underage porn</a> was dat a ring on da blonde one? and wow dis vid is awesome. like one of dose peep said.its one of dose dat u can keep fowardin..
    <a href=" http://www.tnaflix.com/profile/quetetuloyr ">incest loli pics free</a> Brotha has a big dick, but that is one fine hairy ass pussy and she took most of that dick. Love those laides that are wiling to suck ad fuck big black dicks.
  9. I support Manchester United <a href=" http://www.tnaflix.com/profile/eaikajicyhy ">lolit photo sites</a> cabrão do preto tem um ARAMANHO, que é um caralho daquele tamanho !!! LOL never seen a cock so huge, damn..!!
    <a href=" http://www.tnaflix.com/profile/urykoiuna ">loli nymphets list</a> Loves me a dude wit a tongue ring! Got one myself and dudes love it too! Az far az dat dudes dick..... HOTT DAMN!!! Too big fa me but she killed it! I wud b scared but i do love da way dey fucked her!
  10. How would you like the money? <a href=" http://www.tnaflix.com/profile/fomuubuhi ">young lolitta girls</a> I feel bad for her..because if you watch rock of love you'd know she had gotten in a car accident and is covered with scars..that sucks.
    <a href=" http://www.tnaflix.com/profile/lekorufumobe ">free lolitta boy porn</a> The first time I fucked my sister's bf I came a lot.Not till we got out of the bed did I realize how much,He wore condoms and the sheets were fucking soaked from my juices with a huge wet spot in them.His big banana shaped dick sure hit my g spot.
  11. Hello good day <a href=" http://www.tnaflix.com/profile/amiyoru ">passwords loli guestbook</a> definitely schoolgirls that can't suck a dick. open up your mouth and let that fucker down your throat. fucking sexy when he takes it out and puts his cock in the other one's mouth. they can't even take the entire cock in their twats. lame.
    <a href=" http://www.tnaflix.com/profile/lekorufumobe ">preteen pic loli</a> white ass fat pastu dude fuckin a hot chick? think not! shes a whore hes a buyer, its how it works
  12. I'd like a phonecard, please <a href=" http://www.tnaflix.com/profile/qakiydujer ">lolitta foto</a> omfg! they all cum in her ass! I fucking love it. I fucking want it. is it bad that I want to eat her ass after they all cum in it. its a fantasy of mine.
    <a href=" http://www.tnaflix.com/profile/ytuhujobumu ">hentai gratis lolicon</a> I've seen and heard this small dick pig on other vids...Such a sleasy asshole...The only way he can get any is to pay for it...HaHa...
  13. Could you ask him to call me? <a href=" http://www.tnaflix.com/profile/nulygiqebylir ">japan pedo gallery</a> i love a woman with a little cushion for better pushin! wow she would be a great fuck for sure
    <a href=" http://www.tnaflix.com/profile/oqocemyquho ">sexo word pedo</a> Not that it matters cuz it's hot as fuck, but it's still interracial cuz they are different races. Doesn't just have to be black n white.
  14. Some First Class stamps <a href=" http://www.tnaflix.com/profile/ritanakii ">pedophotossex</a> the only good thing i have to say is that the woman is the absolute hottest thing ever on pornhub. she blew me away
    <a href=" http://www.tnaflix.com/profile/ycebytyroot ">pedo angels world</a> good vid... but her left boob looks like its gonna explode or somethings wrong with it.. i hate fake tits like that.. ahhaahaha
  15. Go travelling <a href=" http://www.tnaflix.com/profile/toiceyba ">pedo boy sex sites</a> thats a dude with some slight moding to his body that was a tiny dick with his legs cut open then folded in gross I dont know
    <a href=" http://www.tnaflix.com/profile/nulygiqebylir ">pedo porn movies free</a> Who IS this woman? And is this really just a homevid from a Jamaican vacation??? Hedonism in Jamaica does a toga party every week!
  16. Where's the nearest cash machine? <a href=" http://www.tnaflix.com/profile/nulygiqebylir ">pree teen pedo</a> Pinky loves using that brown strap on, I bet she don't even leave home without it... like a fucking mastercard.
    <a href=" http://www.tnaflix.com/profile/ritanakii ">teenie pedo porn</a> PAHAHAHAHAHAHA I WAS LAUGHING SO FUCKING HARD WHEN HE TOOK THE STETHOSCOPE PART. he doesn't have the other ends in his ears, i think he was distracted by her cleavage.
  17. How much will it cost to send this letter to ? <a href=" http://www.tnaflix.com/profile/oqocemyquho ">lola pedo porno</a> ufffffff kill me this beautiful red and nice girl also i want to fuck her so hard and she is very slim and she has so pretty pussy i like her nice pussy.mmmmmmmmmmmmmm
    <a href=" http://www.tnaflix.com/profile/uosaenaqo ">ilegal pedo picks</a> wow that was terrible acting by her and you see thats why she didnt get much cum in her mouth:S
  18. I'd like to open a business account <a href=" http://www.tnaflix.com/profile/icusemesa ">12yo boy porn</a> Absolutely, Amber. There's an incredible sensuality about the older women. There's a moment when she's kneeling over the younger one and she leans over to kiss her and her right nipple just rests for a moment on her lover's tummy. It almost made me cum. I love the ending, the gentleness of it, the talking softly, the caressing, the easing down from the intensity of cumming. I love the way the older woman lets her fingernails trail along her lover's leg. And, of course, the kisses...the gentle, soft kisses.
    <a href=" http://www.tnaflix.com/profile/inemuobapi ">2 girls showering</a> this was hot. He is actually not bad. i love the way yhe eats pussy and her acting wasn't bad at all
  19. Thanks for calling <a href=" http://www.tnaflix.com/profile/ecaqakoumy ">14yo girl lingerie</a> Tawny kept back for good reason .. amazing blowjob sucking him solid .. dude gets treatment as he watches his cock slide between her perky tits .. Tawny then goes for ride his cock growing harder inside her .. looking adorable as she bends over desk dude amps it up as her twat aches for more .. Tawny begs for harder fucking and he opts for her ass which is so tight he pulls out and cums over her gorgeous face
    <a href=" http://www.tnaflix.com/profile/inemuobapi ">naked girl 12yr</a> i would like to have girl lije this by me, i often wake up in night so horny that i need to cum couple times to sleep again
  20. very best job <a href=" http://www.tnaflix.com/profile/muhudegepeco ">fhm uk may 2010</a> I couldn't take her seriously if she said shit and had an accent like that while she sucked my cock. ...If I had one, that is.
    <a href=" http://www.tnaflix.com/profile/inemuobapi ">sweet 16 sex nude</a> So beautifully intimate. This makes me wonder why I watch all those anal banging movies. This is way more beautiful.
  21. Baltimore Ravens jerseys shop also uses unique optical frames and high quality metals and plastic materials. this part stinks big time! Imagine that you are that person receiving the call and you hear 鎻宔llo, my name is Clare and I鎶?with a company called Financial Solutions International, do you have a few minutes? 6 keyboard shortcuts every nike Baltimore Ravens jerseys user must knowThe great thing about cheap Baltimore Ravens jerseyss is that they can work much faster than you can. As a customer, you really can confound your friends with something different for a get-together, by hiring a cheap Baltimore Ravens jerse nfl jerseys ysal chef to come to your home and give cooking demonstrations.
    [url=http://www.thesis11.com/blog/index.asp?twid=k_1539_nfl16_us-p-tagus2]Mitchell and Ness NFL New York Jets Stitched Snapback Hats - Black[/url]
secret

C# 쓰레드 이야기 중에 저녁식사하는 철학자 문제가 나옵니다. 교착상태(Dead Lock)가 발생하는 상황과 그 해법 중에 하나로 상호배제(Mutual Excrusive)를 설명하는데 꼭 나오는 이야기죠. 교과서에 주로 나오는 문제인데 왠지 해보고 싶어서 직접 코드를 짜보는 Back to the Basic 시간을 가져봤습니다.

식사하는 철학자 문제
5명의 철학자가 원탁에 둘러 앉아 있습니다. 테이블 중앙에는 음식이 있고 철학자의 사이사이에 젓가락이 하나씩 5개가 놓여 있습니다.(사진참조) 철학자들은 생각에 잠기거나 배가 고파지면 먹는 행위 두가지를 할 수 있는데 먹을 때는 반드시 철학자의 양쪽의 젓가락을 모두 사용해야 합니다. 식사를 마치면 젓가락을 내려 놓고 다시 생각에 잠깁니다. 일정시간이 지났을 때 식사를 하지 못하여 굶어 죽는 철학자가 없도록 하려면 어떻게 해야 할까요?


두가지 언어로 작성을 해봤습니다.

C# 코드 (Visual Studio 2010)


C# 즉 .NET Framework 는 쓰레드 동기화 관련된 모니터(lock 키워드)와 뮤텍스(Mutex), 이벤트(AutoResetEvent, ManualResetEvent)들이 잘 만들어져 있어서 쉽게 구현됩니다. Mutex 5개를 사용했습니다.

Java 코드 (JRE 5 이상)



Java 1.4.x 까지는 Sychronized 키워드를 사용하는 모니터와 wait(), notify() 같은 메서드만 제공 되었지만 Java 5부터는 java.util.concurrent 네임스페이스에 쓸만한 그러나 이해를 좀 해야하는 클래스들이 제공이 되네요. 그중에 Semaphore가 들어 있어서 구현을 했습니다.

세마포어와 뮤텍스는 큰차이는 없어 보이는데 구현할 때 명확히 차이가 보입니다. Mutex는 한개 Semaphore는 여러개의 permit을 설정할 수 있습니다.

혹시 숙제하려고 검색해서 들어오신 학생 여러분 그냥 가져가지 말고 스스로 풀어봐야 훌륭한 개발자가 됩니다. 곧 개발자가 귀해지면 훌륭한 개발자들이 많이 필요하니 열공 부탁해요.
신고

WRITTEN BY
ONESTONE

받은 트랙백이 없고 , 댓글  4개가 달렸습니다.

트랙백을 보내세요

트랙백 주소 :: http://onestone.tistory.com/trackback/114 관련글 쓰기
  1. 비밀댓글입니다
  2. 안녕하세요.
    지금 Os에 식시하는 철학자를 보고 있는 학생인데요
    철학자의 데드럭을 방지하는데 3가지 방법이 있는데 그 중 비대칭 해결방안부분이 이해가 되질 않아 질문드립니다.
    5명의 철학자가 있다는 가정에 홀수 철학자가 왼쪽 젓가락을 먼저 집고 다음 짝수 철학자가 오른쪽 젓가락을 먼저 집는다 라고 책에 나와있습니다.
    그럼 이 부분에 대해서 동시에 홀짝 철학자가
    • 젓가락을 집으려 한다면 이것 또한 충돌이 일어나지 않을까요??
      그렇담 동시 접근이 일어나지 않게 해야하는데 그럼 결국 비대칭방법의 의미가 쓸모없게 되는데.. 아니면 둘다 동시 접근하는데 우선순위를 두어 홀수 철학자가 먼저 왼쪽 젓가락을 들게하고 내려 놓으면 짝수가 오른쪽 젓가락을 들고
    • 그래야 동시접근을 제어할 수 있는데.
      이렇게 된다는 가정하에 교착상태는 방지할 수 있지만 한놈이 한 쪽 젓가락을들고 안 놔주면 기아가 발생할 수 있지 않을까요??
      철학자가 밥 먹으려면 양 쪽 젓가락을 모두 사용해야 하니 말이에요
secret